Listák rendezése Pythonban

Ebből a cikkből megtudhatja, hogyan rendezheti a listát Pythonban.

A Pythonban a sort() metódussal rendezheti a listát a helyén. Vagy használhatja a beépített sorted() függvényt a lista rendezett másolatának beszerzéséhez.

Ebből az oktatóanyagból megtudhatja:

  • A sort() metódus és a sorted() függvény szintaxisa
  • Kódpéldák a listák növekvő és csökkenő sorrendbe rendezésére
  • A rendezés testreszabása a kulcsparaméter segítségével
  • Különbség a sort() és a sorted() között

Kezdjük!👩🏽‍💻

A Python sort() metódus szintaxisa

A sort() metódus egy Python listán működik. És a helyére rendezi a listát – és módosítja az eredeti listát.

A Python sort() metódusának szintaxisa a következő:

<list>.sort(reverse = True | False, key = <func>)

Most elemezzük a fenti szintaxist.

  • A bármely érvényes Python listaobjektum.
  • A reverse egy opcionális paraméter, amely igaz vagy hamis értéket vesz fel.
  • A fordított alapértelmezett értéke False, és a lista növekvő sorrendben van rendezve. Adja meg a True értéket a lista csökkenő sorrendbe rendezéséhez.
  • key szintén egy opcionális paraméter, amely a értékre van állítva.
  • A lehet beépített függvény vagy felhasználó által definiált függvény.

A következő részben elkezdheti az egyszerű példák kódolását.

A Python-lista rendezése növekvő sorrendben

Vegye figyelembe a listaszámokat. A lista növekvő sorrendbe rendezéséhez hívja meg a sort() metódust a listán.

▶ Futtassa a következő kódrészletet.

nums = [25,13,6,17,9]
nums.sort()
print(nums)

# Output: [6, 9, 13, 17, 25]

A listaszámok növekvő sorrendbe lettek rendezve, és az eredeti lista módosult. Ezt nevezik helyben válogatásnak.

A Python-lista rendezése csökkenő sorrendben

A lista csökkenő sorrendbe rendezéséhez állítsa a fordított értéket True értékre, az alábbiak szerint.

nums = [25,13,6,17,9]
nums.sort(reverse = True)
print(nums)

# Output: [25, 17, 13, 9, 6]

Láthatja, hogy a lista most csökkenő sorrendben van rendezve.

A kulcs használata a Python sort() metódussal

Ebben a részben használjuk a kulcsparamétert, és szabjuk testre a rendezést.

Itt a mod5() egy olyan függvény, amely egy x számot vesz fel, és a maradékot adja vissza, ha az x számot elosztjuk 5-tel.

def mod5(x):
  return x % 5 

És a fenti funkciót szeretnénk kulcsként használni.

Most futtassa a következő kódcellát.

nums = [25,13,6,17,9]
nums.sort(key = mod5)
print(nums)

# Output: [25, 6, 17, 13, 9]

Szánjon egy percet a kimenet elemzésére.

Figyelje meg, hogy a szokásos rendezés helyett most testreszabhatja a rendezést a mod5 kulcs szerint.

  • Az a szám, amely 5-tel osztva elhagyja a minimális maradékot, az első.
  • És az a szám, amely 5-tel osztva a legnagyobb maradékot hagyja, az utolsó elem a rendezett listában.

Ennek ellenőrzéséhez futtassa a következő kódrészletet.

nums = [25,13,6,17,9]

for num in nums:
  print(f"{num} leaves remainder {num%5} when divided by 5")

# Output
25 leaves remainder 0 when divided by 5
13 leaves remainder 3 when divided by 5
6 leaves remainder 1 when divided by 5
17 leaves remainder 2 when divided by 5
9 leaves remainder 4 when divided by 5

Az 5 pontosan osztja a 25-öt, a maradék pedig 0. Tehát ez az első elem a rendezett listában. A 6 egy maradék 1-et hagy, tehát ez a második elem, és így tovább. A 9 elhagyja a maradék 4-et, ha elosztjuk 5-tel, és ez az utolsó elem a rendezett listában.

Ahelyett, hogy külön függvényt határozna meg, használhatja lambda funkciók. A Pythonban a lambda egysoros névtelen függvények. lambda args : a kifejezés az argson számított kifejezést adja vissza.

Most írjuk át a fenti rendezést a lambda kifejezéssel, az alábbiak szerint.

nums = [25,13,6,17,9]
nums.sort(key = lambda x:x%5)
print(nums)

# Output: [25, 6, 17, 13, 9]

Eddig megtanulta, hogyan kell rendezni a számlistát. Ezután nézzük meg, hogyan rendezheti a karakterláncok listáját a Pythonban.

A Python-lista rendezése ábécé sorrendben

Ebben a részben megtanulhatja, hogyan kell rendezni a húrok listáját – a Harry Potter által ihletett példákkal. ✨

Példánkban a tanulók a Roxfort diákjainak listája. És szeretnénk őket nevük ábécé sorrendjében rendezni.

A karakterláncok listájának rendezésekor az alapértelmezett rendezés ABC sorrendben történik.

students = ["Harry","Ron","Hermione","Draco","Cedric"]

Nyomtassuk ki a rendezett listát, hogy ellenőrizzük a rendezés eredményét.

students.sort()
print(students)

# Output
['Cedric','Draco', 'Harry', 'Hermione', 'Ron']

A Python-lista rendezése fordított ábécé sorrendben

A lista fordított ábécé sorrendbe rendezéséhez állítsa be a fordított = True értéket, ahogy az alábbi kódrészletben is látható.

students.sort(reverse = True)
print(students)

# Output
['Ron', 'Hermione', 'Harry', 'Draco', 'Cedric']

A kimenetből láthatja, hogy a lista valóban fordított sorrendben lett rendezve.

A kulcsparaméter használata Rendezés testreszabása

Ebben a részben szabjuk testre a rendezést az opcionális kulcsparaméter segítségével.

Tekintsük a következő listát, házak.

houses = [
            {1:"Draco","house":"Slytherin"},
            {2:"Harry","house":"Gryffindor"},
            {3:"Cedric","house":"Hufflepuff"}
         ]

Itt a házak szótárak listája található. Minden szótárban két kulcs-érték pár található, az egyik a tanulók nevét, a másik pedig a házat, amelyhez tartoznak.

Most szeretnénk a listán szereplő házakat azon házak ábécé sorrendjében rendezni, amelyekhez tartoznak.

Ahogy azt eddig sejteni lehetett, a kulcsparamétert az adott tanuló házára kell beállítani.

Az egyes tanulók házának lekéréséhez definiálhat egy returnHouse() függvényt, az alábbiak szerint.

def returnHouse(student):
  return student['house']

Ez a függvény azt a házat adja vissza, amelyhez az adott tanuló tartozik.

Most meghívhatja a sort() metódust a házak listáján, ahogy az ábrán látható.

houses.sort(key=returnHouse)

Az alábbi kimenetben figyelje meg, hogy a lista hogyan van rendezve a ház és nem a tanulók neve szerint. Ezért van nálunk a Griffendél, a Hugrabugos és a Mardekáros – ábécé sorrendben.

print(houses)

# Output
[{2: 'Harry', 'house': 'Gryffindor'}, 
{3: 'Cedric', 'house': 'Hufflepuff'}, 
{1: 'Draco', 'house': 'Slytherin'}]

A kulcsparaméter ennek megfelelő meghatározásához lambda függvényt is használhat. Ez a függvény minden listaelemnél visszaadja az adott listaelem házát.

▶ Ennek ellenőrzéséhez futtassa a következő kódcellát.

houses.sort(key=lambda student:student["house"])
print(houses)

# Output
[{2: 'Harry', 'house': 'Gryffindor'}, 
{3: 'Cedric', 'house': 'Hufflepuff'}, 
{1: 'Draco', 'house': 'Slytherin'}]

Az összes eddigi példában a sort() metódust használta egy listán. És most már tudja, hogy ez módosítja az eredeti listát.

Mi a teendő, ha szeretné megtartani az eredeti listát, de beszerezni egy rendezett másolatot a listáról?

Nos, a Pythonban használhatja a sorted() függvényt erre.

A Python sorted() függvény szintaxisa

A sorted() függvény argumentumként egy listát vagy bármilyen gyűjteményt vesz fel. És visszaadja a lista rendezett másolatát – és az eredeti lista nem módosul.

A Python sorted() függvényének szintaxisa a következő:

<sorted_copy> = sorted(<list>, reverse = True | False, key = <func>)

Figyeljük meg, hogy a szintaxis nagyon hasonlít a korábban látott sort() metódushoz.

  • A bármely érvényes Python-listaobjektum, és kötelező paraméter.
  • A hátramenet és a kulcs nem kötelező paraméterek

Megjegyzés: A sort() metódussal ellentétben, amely csak a listákon működik, a sorted() függvény bármilyen Python iterálható, például listák, karakterláncok és szótárak rendezésére használható.

A Python-lista rendezése a sorted() függvény segítségével

#1. Ebben a példában a számok számok listája.

Meghívhatja a sorted() függvényt számokkal argumentumként. És rendelje hozzá a sorted_nums1 listához.

nums = [25,13,6,17,9]
sorted_nums1 = sorted(nums)
print(sorted_nums1)

# Output: [6, 9, 13, 17, 25]

A fenti kimenetben láthatja, hogy a számok alapértelmezés szerint növekvő sorrendben vannak rendezve.

Figyelje meg azt is, hogy az eredeti listaszámok nem módosulnak – mert a sorted() egy új listát ad vissza. Ezt alább ellenőrizzük.

print(nums)
 # Output: [25, 13, 6, 17, 9]

#2. Most állítsa az opcionális fordított paramétert True értékre, és kapja meg a sorted_nums2 fájlt.

Ahogy az alábbi kódcellában látható, a sorted_nums2 egy új lista, amelyben az elemek csökkenő sorrendben vannak rendezve.

sorted_nums2 = sorted(nums,reverse = True)
print(sorted_nums2)

# Output: [25, 17, 13, 9, 6]

#3. Ebben a példában dolgozzunk egy karakterlánc-listával.

Az előző példákhoz hasonlóan a sorted() függvény meghívása egy új listát ad vissza. És az elemek ábécé sorrendben vannak rendezve.

fruits = ['pears','strawberry','apple','pineapple','blueberry']
sorted_fr1 = sorted(fruits)
print(sorted_fr1)

# Output:
['apple', 'blueberry', 'pears', 'pineapple', 'strawberry']

#4. Most szabjuk testre a rendezést az opcionális kulcsparaméter segítségével. Állítsa a kulcsot len ​​állásba. Ez a listát a karakterláncok hossza alapján rendezi.

Megjegyzés: A Pythonban a beépített len() függvény bármilyen iterálható elemet felvesz, például listákat, karakterláncokat, sorokat és így tovább. És visszaadja az iterálható hosszát.

A legrövidebb karakterlánc jelenik meg először a rendezett listában, a leghosszabb karakterlánc pedig a rendezett lista végén.

fruits = ['pear','strawberry','apple','pineapple','blueberry']
sorted_fr2 = sorted(fruits,key=len)
print(sorted_fr2)

# Output:
['pear', 'apple', 'pineapple', 'blueberry', 'strawberry']

A fenti kimenetben a körte a legrövidebb, az eper pedig a leghosszabb húr.

Python sort() metódus vs sorted() függvény

Eddig megtanulta a sort() metódus és a sorted() függvény használatát. Ebben a részben soroljuk fel a két módszer közötti különbségeket.

Python .sort() MethodPython sorted() függvény A listát a helyére rendezi – módosítja az eredeti listát. Új rendezett listát ad vissza Csak Python listákkal működik együtt Python iterálható elemekkel, például listákkal, karakterláncokkal és egyéb gyűjteményekkel. A None típusút adja vissza. Az iterálható másolatot adja vissza

Összegzés 👩‍🏫

Remélem, hasznosnak találta ezt a Python listák oktatóanyagát.

Röviden összefoglaljuk, miről is beszéltünk.

  • A list.sort(reverse = igaz | False, kulcs = ) használata az opcionális fordított és kulcsparaméterekkel a lista hely szerinti rendezéséhez.
  • Használja a sorted(lista, fordított = igaz | False, kulcs = ) parancsot a lista rendezett másolatának elkészítéséhez.

Most, hogy megtanulta, hogyan kell rendezni a Python-listákat, ismerkedjen meg a listák Pythonban való megértésével. Vagy megtanulhatja a fájlok kezelését vagy a JSON-fájlok kezelését a Pythonban.

Kipróbálhatja a fenti példákat a etoppc.com Online Python Compilerben.

  Hogyan lehet visszaállítani az Ubuntut az alapértelmezett beállításokra