Python List sort() példákkal

Miben található a sort() metódus? Python?

Rendezés funkció Python segít a lista növekvő vagy csökkenő sorrendbe rendezésében. Használható numerikus lista, sorok és karakterlánclista rendezésére. Nem hoz létre külön listát, hanem módosítja vagy rendezi az eredetit.

A rendezési metódus szintaxisa in Python

A rendezési függvény szintaxisa a következő: –

List.sort(key=…, reverse=…)

A rendezési funkciónak két opcionális paramétere van, nevezetesen az alábbiak szerint: –

  • Kulcs:- Ez egy függvény rendezésére szolgál rendezési feltétel alapján.
  • Reverse: – az értéket igaznak vagy hamisnak veszi. Ha igaz, ez az egyéni függvény csökkenő sorrendbe rendezi a listát.

Lista rendezése növekvő sorrendben a Rendezés módszerrel Python

In Python, a rendezés funkció alapértelmezés szerint minden listát növekvő sorrendbe rendez. A növekvő sorrendben lévő lista bal oldalán a legalacsonyabb érték, a jobb oldalon pedig a legmagasabb érték található.

Példa:

Python kód:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

output:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Kód magyarázata:

  • A fenti lista egy véletlenszerűen meghatározott karakterlánclista.
  • A rendezési funkció Python segít a véletlenszerű lista növekvő sorrendben rendezésében, ahol a bal oldalon a legkisebb, a jobb oldalon a legnagyobb szóhosszúságú szó található.

Lista rendezése csökkenő sorrendben

A rendezés funkció lehetővé teszi a lista csökkenő sorrendbe rendezését is. Meghatározható sorrendként ahol a lista a legmagasabb értékkel kezdődik és a legalacsonyabb értékkel végződik.

A rendezési függvény fordított paramétere igaz, hogy a lista csökkenő sorrendbe kerüljön.

Nézzük az alábbi példát: -

Python kód:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

output:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Megjegyzés: Győződjön meg arról, hogy a „True” szó hozzárendelése a fordított paraméterhez nagy „T” betűvel kezdődik, hogy elkerülje a futásidejű hibákat.

A sorok listájának rendezése a Rendezés módszerrel Python

Python Tollok megváltoztathatatlan elemek gyűjteményei, amelyek rendezett sorrendet követnek. PythonA rendezési függvény segítségével sorba rendezheti a sorok listáját testreszabott függvény és lambda kifejezés segítségével.

Egy testreszabott függvény név nélkül is létrehozható, és lambda kifejezéssel ábrázolható. A Lambda kifejezés szintaxisa a következő: –

Syntax:

Lambda arguments: expression

A fenti szintaxis egyenértékű az alábbi python kóddal:

def name (arguments):
return expression

Íme egy példa egy sorra és egy testreszabott függvényre annak szemléltetésére, hogy a kulcsparaméterekkel rendelkező rendezési függvény hogyan segít rendezni az elemeket egy sorban:-

Python kód:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

output:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Kód magyarázata:

  • A fordított paraméter igazként van definiálva a sor csökkenő sorrendbe rendezéséhez.
  • A testreszabott függvény a sor második elemét veszi fel.
  • Ezt a rendezési funkció kulcsaként használják.

Nézzük meg az alábbi példát, amely a lambda kifejezést használja:

Python kód:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

output:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Magyarázat:

  • A lambda-kifejezés segít abban, hogy a sor elemeit magasról alacsonyra rendezze úgy, hogy a kulcs a sor második eleme.
  • A program a sor második elemének legmagasabb értékét ellenőrzi.

Listaelemek rendezése Len kulcsparaméter használatával

A Len egy beépített funkció, amely meghatározza az elem hosszát. A meghatározott hossz felhasználható az indexáláshoz a rendezési függvényben. Ehhez Len-t rendeljük a Python rendezés funkció kulcsparamétere.

A következő Python kód bemutatja, hogyan kell használni a Len függvényt a rendezési funkcióval.

Python Kód:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

output:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Kód magyarázata:

Listaelemek rendezése Len segítségével

  • Az elem hossza a kulcsparaméter indexévé válik a lista növekvő sorrendbe rendezéséhez.
  • A Len függvény megbecsüli az alaplistában szereplő egyes elemek hosszát.
  • A legrövidebb elemet a bal oldalon, a legnagyobb elemet pedig a jobb oldalon tartja.
  • Itt az alto és a java szavak 4-es hosszúságúak, amelyek a listában elsőként vannak elrendezve, ezt követi a Guru99, amelynek hossza 6.

Ez a példa szemlélteti a fordított paraméter fogalmát a rendezési függvényben az alábbiak szerint: –

Python Kód:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

output:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Listaelemek rendezése kulcsparaméterként a felhasználó által definiált függvény használatával

A felhasználó által definiált függvényt kulcsparaméterként is használhatja a lista rendezéséhez. Íme egy példa: -

Python Kód:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

output:

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Kód magyarázata:

  • A felhasználó által definiált függvény jön létre az év visszaadásához
  • A kulcsparaméter egy felhasználó által definiált függvényt vesz kritériumnak.
  • A Rendezés funkció az „év” elem értéke alapján növekvő sorrendbe rendezi a listát.

Különbség a rendezési módszer és a rendezési módszer között Python

Mielőtt összefoglalnánk a különbségeket, ismerjük meg a Sorted metódus szintaxisát.

Python Syntax:

sorted (list_name, reverse=…., key=..)

Kód magyarázata:

  • A rendezett függvény a listát növekvő vagy csökkenő sorrendbe rendezi.
  • A függvény három paramétert fogad el, amelyek közül két paraméter nem kötelező, egy pedig a szükséges típusú.
  • A lista_neve paraméter megadása kötelező a Rendezett metódus használatakor.
  • A Rendezett metódus bármilyen típusú iterálható listát használhat bemenetként.
  • A kulcsparaméterek és a fordított paraméterek nem kötelező paraméterek a besorolási módszer szerint Python.

Íme egy példa a rendezés és a rendezett függvény használatára Python az alábbiak szerint: -

Python kód:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

output:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Kód magyarázata:

  • Az eredeti lista a rendezett függvény kötelező paramétereként kerül átadásra.
  • A Rendezett metódus egy új listát ad vissza az eredeti lista mellett.
  • Mivel a rendezett metódushoz nem adnak át további paramétereket, az új lista alapértelmezés szerint növekvő sorrendben van rendezve.
  • A rendezés funkció nem hoz létre új listát.

Az alábbiakban felsoroljuk a legfontosabb hasonlóságokat és különbségeket: –

Rendezett funkció Rendezés funkció
Rendezett funkció Python egy beépített függvény, amely kötelező paraméterként veszi a list_name. A rendezés funkció nem az eredeti listát veszi paraméterként.
A rendezett metódus új listát ad vissza A rendezés funkció nem ad vissza új listát
Az iterálható listákhoz a rendezett függvényt kell használni A rendezés funkciót nem iterálható listákhoz kell használni.
Nem módosítja az eredeti listát, és lehetővé teszi számunkra az eredeti adatok megőrzését. A rendezés funkció módosítja az eredeti függvényt, és így kevesebb memóriaterületet foglal el

Mikor érdemes a szortírozási módszert vagy a rendezési módot használni?

Vegyünk egy példát, amelyhez a versenyadatok rendezése szükséges. A program az előke számát és a futam befejezéséhez másodpercben eltelt időt használja.

Python kód:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

output:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Kód magyarázata:

  • Az alaplista rendezése a rendezés és a rendezett függvény segítségével történik.
  • A rendezési funkció alkalmazásakor az alaplista elveszik.
  • A rendezési funkciót nem szabad az eredeti adatkészletre alkalmazni. Akkor kell használni, ha az eredeti adatkészletnek van másolata.
  • A Rendezett funkció megtartja az eredeti listát. Nem írja felül.
  • Ez jobb nyomon követhetőséget és hatékony adatkezelést kínál.

Összegzés

  • A rendezés funkció segít a numerikus és karakterláncok rendezésében a pythonban.
  • Segíthet a sorok válogatásában is.
  • RevAz erse és a key a függvény opcionális paraméterei.
  • Ha külön listára és egyidejűleg az eredeti listára van szükség, akkor különben a rendezett funkciót kell használni, a rendezés funkciót kell használni az optimalizált memóriahasználat eléréséhez.