Pythoni loendi sort ()

Sortimismeetod () sorteerib antud loendi elemendid kindlas kasvavas või kahanevas järjekorras.

Meetodi süntaks sort()on:

 list.sort (võti =…, tagurpidi =…)

Teise võimalusena võite samal eesmärgil kasutada ka Pythoni sisseehitatud funktsiooni sorted ().

 sorteeritud (loend, võti =…, tagurpidi =…)

Märkus . Lihtsaim erinevus sort()ja vahel sorted()on: sort()muudab loendit otse ja ei tagasta väärtust, samas sorted()ei muuda loetelu ja tagastab sorditud loendi.

sort () Parameetrid

Vaikimisi sort()ei vaja lisaparameetreid. Sellel on siiski kaks valikulist parameetrit:

  • vastupidine - kui True, sorteeritud loend on vastupidine (või järjestatud kahanevas järjekorras)
  • võti - funktsioon, mis toimib sordi võrdlemise võtmena

Tagastage väärtus sortimisest ()

sort()Meetod ei tagasta mingit väärtust. Pigem muudab see algset loendit.

Kui soovite, et funktsioon tagastaks sorditud loendi, selle asemel et muuta algset loendit, kasutage sorted().

Näide 1: antud loendi sortimine

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort() # print vowels print('Sorted list:', vowels)

Väljund

 Sorteeritud loend: ('a', 'e', ​​'i', 'o', 'u')

Sorteeri kahanevas järjekorras

sort()Meetod aktsepteerib reverseparameetri valikulise argument.

Seadistus reverse = Truesorteerib loendi kahanevas järjekorras.

 list.sort(reverse=True)

Alternatiivina sorted()saate kasutada järgmist koodi.

 sorted(list, reverse=True)

Näide 2: Sorteeri loend kahanevas järjekorras

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort(reverse=True) # print vowels print('Sorted list (in Descending):', vowels)

Väljund

 Sorteeritud loend (kahanevas järjekorras): ('u', 'o', 'i', 'e', ​​'a')

Sortimine kohandatud funktsiooniga klahvi abil

Kui soovite sortimiseks oma rakendust, sort()aktsepteerib meetod keyfunktsiooni ka valikulise parameetrina.

Põhifunktsiooni tulemuste põhjal saate antud loendi sortida.

 list.sort(key=len)

Alternatiivina sortimiseks:

 sorted(list, key=len)

Siin lenon Pythoni sisseehitatud funktsioon elemendi pikkuse lugemiseks.

Loend on sorteeritud iga elemendi pikkuse põhjal, väikseimast arvust suurimani.

Me teame, et dupleks sorteeritakse vaikimisi selle esimese parameetri abil. Vaatame, kuidas kohandada sort()meetodit sortimiseks teise elemendi abil.

Näide 3: loendi sortimine klahvi abil

 # take second element for sort def takeSecond(elem): return elem(1) # random list random = ((2, 2), (3, 4), (4, 1), (1, 3)) # sort list with key random.sort(key=takeSecond) # print list print('Sorted list:', random)

Väljund

 Sorteeritud loend: ((4, 1), (2, 2), (1, 3), (3, 4))

Võtame veel ühe näite. Oletame, et meil on loetelu teabest kontori töötajate kohta, kus iga element on sõnastik.

Saame loendi sortida järgmisel viisil:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # custom functions to get employee info def get_name(employee): return employee.get('Name') def get_age(employee): return employee.get('age') def get_salary(employee): return employee.get('salary') # sort by name (Ascending order) employees.sort(key=get_name) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=get_age) print(employees, end='') # sort by salary (Descending order) employees.sort(key=get_salary, reverse=True) print(employees, end='')

Väljund

(('Nimi': 'Alan Turing', 'vanus': 25, 'palk': 10000), ('Nimi': 'John Hopkins', 'vanus': 18, 'palk': 1000), ('nimi ":" Mihhail Tal "," vanus ": 40," palk ": 15000), (" nimi ":" Sharon Lin "," vanus ": 30," palk ": 8000)) ((" nimi ":" John Hopkins ',' vanus ': 18,' palk ': 1000), (' nimi ':' Alan Turing ',' vanus ': 25,' palk ': 10000), (' nimi ':' Sharon Lin ', "vanus": 30, "palk": 8000), ("nimi": "Mikhail Tal", "vanus": 40, "palk": 15000)) (("nimi": "Mihhail Tal", "vanus") : 40, "palk": 15000), ("nimi": "Alan Turing", "vanus": 25, "palk": 10000), ("Nimi ":" Sharon Lin "," vanus ": 30," palk ": 8000), (" nimi ":" John Hopkins "," vanus ": 18," palk ": 1000))

Esimesel juhul tagastab meie kohandatud funktsioon iga töötaja nime. Kuna nimi on a string, sorteerib Python vaikimisi selle tähestikulises järjekorras.

Teisel juhul inttagastatakse vanus ( ) ja sorteeritakse kasvavas järjekorras.

Kolmandal juhul tagastab funktsioon palga ( int) ja sorteeritakse kahanevas järjekorras kasutades reverse = True.

Hea tava on kasutada lambda-funktsiooni, kui funktsiooni saab kokku võtta ühes reas. Nii võime ülaltoodud programmi kirjutada ka järgmiselt:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # sort by name (Ascending order) employees.sort(key=lambda x: x.get('Name')) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=lambda x: x.get('age')) print(employees, end='') # sort by salary (Descending order) employees.sort(key=lambda x: x.get('salary'), reverse=True) print(employees, end='')

Väljund

(('Nimi': 'Alan Turing', 'vanus': 25, 'palk': 10000), ('Nimi': 'John Hopkins', 'vanus': 18, 'palk': 1000), ('nimi ":" Mihhail Tal "," vanus ": 40," palk ": 15000), (" nimi ":" Sharon Lin "," vanus ": 30," palk ": 8000)) ((" nimi ":" John Hopkins ',' vanus ': 18,' palk ': 1000), (' nimi ':' Alan Turing ',' vanus ': 25,' palk ': 10000), (' nimi ':' Sharon Lin ', "vanus": 30, "palk": 8000), ("nimi": "Mikhail Tal", "vanus": 40, "palk": 15000)) (("nimi": "Mihhail Tal", "vanus") : 40, "palk": 15000), ("nimi": "Alan Turing", "vanus": 25, "palk": 10000), ("Nimi ":" Sharon Lin "," vanus ": 30," palk ": 8000), (" nimi ":" John Hopkins "," vanus ": 18," palk ": 1000))

Lambda funktsioonide kohta lisateabe saamiseks külastage lehte Python Lambda funktsioonid.

Huvitavad Artiklid...