Python Loendi sort() koos näidetega
Milles on sort() meetod Python?
Sordi funktsiooni sisse Python aitab sortida loendit kasvavas või kahanevas järjekorras. Seda saab kasutada numbriliste loendite, korteežide ja stringide loendi sortimiseks. See ei loo eraldi loendit, vaid muudab või sorteerib originaali.
Sortimismeetodi süntaks Python
Sorteerimisfunktsioonil on järgmine süntaks, nagu allpool loetletud: –
List.sort(key=…, reverse=…)
Sorteerimisfunktsioonil on kaks valikulist parameetrit, mis on loetletud allpool: –
- Võti: seda kasutatakse funktsiooni sortimiseks sortimiskriteeriumi alusel.
- Reverse: – väärtus on tõene või väär. Kui see on tõene, sorteerib see kohandatud funktsioon loendi kahanevas järjekorras.
Loendi sortimine kasvavas järjekorras, kasutades meetodit Sordi sisse Python
In Python, sortimise funktsioon sorteerib vaikimisi kõik loendid kasvavas järjekorras. Kasvavas järjestuses loendi väikseim väärtus on vasakul ja suurim väärtus on paremal.
Näide:
Python kood:
base_list=["Google","Reliance","Guru99","Content","Syntax"] base_list.sort() print("the base list after sorting is",base_list)
Väljund:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Koodi selgitus:
- Ülaltoodud loend on juhuslikult määratletud stringide loend.
- Sortimisfunktsioon Python aitab järjestada juhuslikku loendit kasvavas järjekorras, kus vasakul pool on sõna väikseim ja paremal pool suurim sõna pikkus.
Loendi sortimine kahanevas järjekorras
Sorteerimisfunktsioon võimaldab ka loendit sortida kahanevas järjekorras. Seda saab määratleda tellimusena kus loend algab suurima väärtusega ja lõpeb väikseima väärtusega.
Sorteerimisfunktsiooni vastupidine parameeter määratakse tõeseks, et saada loend sorteeritud kahanevas järjekorras.
Vaatame allolevat näidet: -
Python kood:
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)
Väljund:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Märkus. Käitusaja vigade vältimiseks veenduge, et sõna "True" omistamine pöördparameetrile algaks suurtähega "T".
Korterite loendi sortimine, kasutades meetodit Sordi sisse Python
Python Tuplid on muutumatute elementide kogumid, mis järgivad järjestatud järjestust. PythonSorteerimisfunktsiooni saab kasutada korteežide loendi sortimiseks kohandatud funktsiooni ja lambda-avaldise abil.
Kohandatud funktsiooni saab luua ilma nimeta ja esitada lambda-avaldisega. Lambda avaldise süntaks on järgmine: -
süntaksit:
Lambda arguments: expression
Ülaltoodud süntaks on samaväärne alloleva Pythoni koodiga:
def name (arguments): return expression
Siin on näide kordust ja kohandatud funktsioonist, et illustreerida, kuidas võtmeparameetritega sortimisfunktsioon aitab korteeži elemente sortida:-
Python kood:
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)
Väljund:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Koodi selgitus:
- Pöördparameeter on defineeritud tõeseks, et sortida korteež kahanevas järjekorras.
- Kohandatud funktsioon võtab korteeži teise elemendi.
- Seda kasutatakse sortimisfunktsiooni võtmena.
Vaatame allolevat näidet, mis kasutab lambda avaldist:
Python kood:
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)
Väljund:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Selgitus:
- Lambda-avaldis aitab teil sorteerida korteeži elemente kõrgest madalaks, kui võti on korteeži teine element.
- Programm kontrollib korteeži teise elemendi suurimat väärtust.
Loendiüksuste sortimine võtmeparameetrina Leni abil
Len on sisseehitatud funktsioon, mis määrab eseme pikkuse. Määratud pikkust saab kasutada sortimisfunktsiooni indekseerimiseks. Selleks määrame Leni Python sortimisfunktsiooni võtmeparameeter.
Järgmised Python kood illustreerib, kuidas kasutada funktsiooni Len koos sortimisfunktsiooniga.
Python kood:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len) print("The sorted list based on length:",base_list)
Väljund:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Koodi selgitus:
- Elemendi pikkus muutub võtmeparameetri indeksiks loendi järjestamiseks kasvavas järjekorras.
- Funktsioon Len hindab iga põhiloendis oleva elemendi pikkust.
- See hoiab kõige lühema elemendi vasakul ja suurima elemendi paremal küljel.
- Siin on sõnade alto ja java pikkus 4, mis on järjestatud loendis esimesena, millele järgneb Guru99, mille pikkus on 6.
See näide illustreerib sortimisfunktsiooni vastupidise parameetri kontseptsiooni, nagu on näidatud allpool: –
Python kood:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len,reverse=True) print("The sorted list based on length:",base_list)
Väljund:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Loendiüksuste sortimine, kasutades võtmeparameetrina kasutaja määratud funktsiooni
Loendi sortimiseks saate võtmeparameetrina kasutada ka kasutaja määratud funktsiooni. Siin on näide: -
Python kood:
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)
Väljund:
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}]
Koodi selgitus:
- Aasta tagastamiseks luuakse kasutaja määratud funktsioon
- Võtmeparameeter võtab kriteeriumina kasutaja määratud funktsiooni.
- Sorteerimisfunktsioon järjestab loendi kasvavas järjekorras elemendi “year” väärtuse alusel.
Erinevus sortimismeetodi ja sortimismeetodi vahel Python
Enne erinevuste kokkuvõtmist mõistame sorteeritud meetodi süntaksit.
Python süntaksit:
sorted (list_name, reverse=…., key=..)
Koodi selgitus:
- Sorditud funktsioon sorteerib loendi kas kasvavas või kahanevas järjekorras.
- Funktsioon aktsepteerib kolme parameetrit, millest kaks parameetrit on valikulist tüüpi ja üks parameeter on nõutavat tüüpi.
- Sorditud meetodi kasutamisel on nõutav parameetri loendi_nimi.
- Sorditud meetod võib kasutada sisendina mis tahes tüüpi itereeritavat loendit.
- Põhiparameetrid ja pöördparameetrid on valikulised parameetrid sorteeritud meetodi korral Python.
Siin on näide sortimise ja sortimise funktsiooni kasutamisest Python nagu allpool näidatud: -
Python kood:
#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)
Väljund:
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
Koodi selgitus:
- Algne loend edastatakse sorteeritud funktsiooni nõutava parameetrina.
- Sorditud meetod tagastab algsele loendile lisaks uue loendi.
- Kuna sorteeritud meetodile täiendavaid parameetreid ei edastata, on uus loend vaikimisi järjestatud kasvavas järjekorras.
- Sorteerimisfunktsioon ei loo uut loendit.
Peamiste sarnasuste ja erinevuste kohta on toodud järgmised punktid: –
Sorteeritud funktsioon | Sorteerimisfunktsioon |
---|---|
Sorditud funktsioon Python on sisseehitatud funktsioon, mis võtab nõutava parameetrina nimekirja_nimi. | Sorteerimisfunktsioon ei võta parameetrina algset loendit. |
Sorditud meetod tagastab uue loendi | Sortimisfunktsioon ei tagasta uut loendit |
Itereeritavate loendite puhul tuleks kasutada sorteeritud funktsiooni | Sortimisfunktsiooni tuleks kasutada mitteitereeritavate loendite jaoks. |
See ei muuda algset loendit ja võimaldab meil säilitada algandmeid. | Sorteerimisfunktsioon muudab algset funktsiooni ja võtab seega vähem mäluruumi |
Millal kasutada sortimismeetodit või sortimismeetodit?
Võtame näite, mis nõuab võistluste andmete sorteerimist. Programm kasutab rinnanumbrit ja sõidu lõpetamiseks sekundites kuluvat aega.
Python kood:
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)
Väljund:
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)]
Koodi selgitus:
- Põhiloendit sorteeritakse nii sortimis- kui ka sortimisfunktsiooni abil.
- Põhiloend läheb sortimisfunktsiooni rakendamisel kaotsi.
- Sorteerimisfunktsiooni ei tohiks algsele andmekogumile rakendada. Seda tuleks kasutada siis, kui algsest andmekogumist on olemas koopiaversioon.
- Funktsioon Sorditud säilitab algse loendi. See ei alista seda.
- See pakub paremat jälgitavust ja tõhusat andmehaldust.
Järeldus
- Sorteerimisfunktsioon aitab Pythonis numbrite ja stringide loendit sortida.
- See võib aidata ka korstnate sortimisel.
- Reverse ja key on funktsiooni valikulised parameetrid.
- Kui on vaja eraldi loendit ja samaaegselt algset loendit, siis tuleb muul juhul kasutada sorteerimisfunktsiooni, optimeeritud mälukasutuse saavutamiseks kasutada sortimisfunktsiooni.