Python List sort() esimerkkien kanssa
โก รlykรคs yhteenveto
Python list sort() jรคrjestรครค listan elementit paikoilleen oletusarvoisesti nousevaan jรคrjestykseen tai kรครคnteisen parametrin mukaan laskevaan jรคrjestykseen, kun taas valinnainen avainfunktio lajittelee mukautettujen kriteerien, kuten pituuden, tuple-kenttien tai kรคyttรคjรคn mรครคrittรคmien funktioiden, mukaan.

Mikรค on sort()-menetelmรค Python?
Sort()-funktio kohdassa Python auttaa lajittelemaan listan nousevaan tai laskevaan jรคrjestykseen. Sitรค voidaan kรคyttรครค numeerisen listan, tuplejen ja merkkijonolistan lajitteluun. Se ei luo erillistรค listaa, vaan muokkaa tai lajittelee alkuperรคisen.
Lajittelumenetelmรคn syntaksi sisรครคn Python
Lajittelufunktiolla on seuraava syntaksi:
List.sort(key=โฆ, reverse=โฆ)
Lajittelufunktiolla on kaksi valinnaista parametria, nimittรคin:
- Avain:- Tรคtรค kรคytetรครคn lajittelemaan funktio lajittelukriteerin perusteella.
- Reverse: โ se ottaa arvon joko true tai false. Jos arvo on true, tรคmรค mukautettu funktio lajittelee listan laskevaan jรคrjestykseen.
Listan lajittelu nousevaan jรคrjestykseen Lajittele sisรครคn -menetelmรคllรค Python
In Python, lajittelutoiminto lajittelee oletusarvoisesti kaikki luettelot nousevaan jรคrjestykseen. Nousevassa jรคrjestyksessรค olevan luettelon vasemmalla puolella on pienin arvo ja oikealla puolella suurin arvo.
Esimerkiksi:
Python koodi:
base_list=["Google","Reliance","Guru99","Content","Syntax"] base_list.sort() print("the base list after sorting is",base_list)
lรคhtรถ:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Code Selitys:
- Yllรค oleva luettelo on satunnaisesti mรครคritetty merkkijonoluettelo.
- Lajittelutoiminto Python auttaa lajittelemaan satunnaista listaa nousevaan jรคrjestykseen, jolloin sanan pienin pituus on vasemmalla ja suurin sana oikealla.
Listan lajittelu laskevaan jรคrjestykseen
Lajittelutoiminto mahdollistaa myรถs luettelon lajittelun laskevaan jรคrjestykseen. Se voidaan mรครคritellรค tilaukseksi jossa luettelo alkaa suurimmalla arvolla ja pรครคttyy pienimpรครคn arvoon.
Lajittelutoiminnon kรครคnteinen parametri mรครคritetรครคn arvoksi tosi, jotta luettelo lajitellaan laskevassa jรคrjestyksessรค.
Katsotaanpa alla olevaa esimerkkiรค:
Python koodi:
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)
lรคhtรถ:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Huomautus: Varmista, ettรค sanan "True" mรครคrittรคminen kรครคnteiselle parametrille alkaa isolla T-kirjaimella, jotta vรคltytรครคn ajonaikaisilta virheiltรค.
Tuple-luettelon lajitteleminen lajittelumenetelmรคllรค Python
Python tuples ovat kokoelmat muuttumattomia elementtejรค, jotka seuraavat jรคrjestettyรค sekvenssiรค. Pythonn lajittelufunktiota voidaan kรคyttรครค monikkoluettelon lajittelemiseen mukautetun funktion ja lambda-lausekkeen avulla.
Mukautettu funktio voidaan luoda ilman nimeรค ja esittรครค lambda-lausekkeella. Seuraava on lambda-lausekkeen syntaksi:
Syntaksi:
Lambda arguments: expression
Yllรค oleva syntaksi vastaa alla olevaa python-koodia:
def name (arguments): return expression
Tรคssรค on esimerkki tuplesta ja mukautetusta funktiosta, joka havainnollistaa, miten lajittelufunktio avainparametreilla auttaa lajittelemaan tuplen elementtejรค:
Python koodi:
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)
lรคhtรถ:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Code Selitys:
- Kรครคnteinen parametri on mรครคritelty tosi, jotta monikko lajitellaan laskevaan jรคrjestykseen.
- Mukautettu funktio ottaa monikon toisen elementin.
- Tรคtรค kรคytetรครคn lajittelutoiminnon avaimena.
Katsotaanpa alla olevaa esimerkkiรค, joka kรคyttรครค lambda-lauseketta:
Python koodi:
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)
lรคhtรถ:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Selitys:
- Lambda-lauseke auttaa sinua lajittelemaan monikon elementit korkeasta matalaan nรคppรคimellรค monikon toisena elementtinรค.
- Ohjelma tarkistaa monikon toisen elementin suurimman arvon.
Listan kohteiden lajittelu kรคyttรคmรคllรค Leniรค avainparametrina
Len on sisรครคnrakennettu funktio, joka mรครคrittรครค alkion pituuden. Mรครคritettyรค pituutta voidaan kรคyttรครค indeksointiin lajittelufunktiossa. Tรคtรค varten asetamme Lenin Python lajittelufunktion avainparametri.
Seuraavat Python koodi havainnollistaa kuinka Len-toimintoa kรคytetรครคn lajittelutoiminnon kanssa.
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len) print("The sorted list based on length:",base_list)
lรคhtรถ:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Code Selitys:
- Elementin pituudesta tulee indeksi avainparametrille listan jรคrjestรคmiseksi nousevaan jรคrjestykseen.
- Len-funktio arvioi jokaisen perusluettelossa olevan elementin pituuden.
- Se pitรครค lyhimmรคn elementin vasemmalla puolella ja suurimman elementin oikealla puolella.
- Tรคssรค sanojen alto ja java pituus on 4, jotka on jรคrjestetty luettelon ensimmรคisiksi ja sitten Guru99, jonka pituus on 6.
Tรคmรค esimerkki havainnollistaa kรครคnteisen parametrin kรคsitettรค lajittelufunktiossa seuraavasti:
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len,reverse=True) print("The sorted list based on length:",base_list)
lรคhtรถ:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Listan kohteiden lajittelu kรคyttรคmรคllรค kรคyttรคjรคn mรครคrittรคmรครค toimintoa avainparametrina
Voit myรถs kรคyttรครค kรคyttรคjรคn mรครคrittรคmรครค funktiota avainparametrina luettelon lajittelemiseen. Tรคssรค on esimerkki:
Python Code:
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)
lรคhtรถ:
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}]
Code Selitys:
- Luodaan kรคyttรคjรคn mรครคrittรคmรค funktio palauttamaan vuoden
- Avainparametri ottaa kรคyttรคjรคn mรครคrittรคmรคn funktion kriteeriksi.
- Lajittelutoiminto jรคrjestรครค listan nousevaan jรคrjestykseen elementin โyearโ arvon perusteella.
Lajittelutavan ja lajittelutavan vรคlinen ero Python
Yllรค olevien esimerkkien lรคpikรคymisen jรคlkeen on hyรถdyllistรค vertailla kahta lajittelutyรถkalua suoraan. Ennen kuin eroavaisuudet tiivistetรครคn, tutustutaan Sorted-metodin syntaksiin.
Python Syntaksi:
sorted (list_name, reverse=โฆ., key=..)
Code Selitys:
- Lajiteltu toiminto lajittelee luettelon joko nousevaan tai laskevaan jรคrjestykseen.
- Funktio hyvรคksyy kolme parametria, joista kaksi on valinnaista tyyppiรค ja yksi parametri on pakollista tyyppiรค.
- Parametri listan_nimi vaaditaan kรคytettรคessรค lajiteltua menetelmรครค.
- Lajiteltu menetelmรค voi ottaa syรถtteeksi minkรค tahansa iteroitavan luettelon.
- Avainparametrit ja kรครคnteiset parametrit ovat valinnaisia โโparametreja lajittelumenetelmรคssรค Python.
Tรคssรค on esimerkki lajittelu- ja lajittelutoiminnon kรคytรถstรค Python:
Python koodi:
#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)
lรคhtรถ:
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
Code Selitys:
- Alkuperรคinen luettelo vรคlitetรครคn pakollisena parametrina jรคrjestetylle funktiolle.
- Lajiteltu menetelmรค palauttaa uuden luettelon alkuperรคisen luettelon lisรคksi.
- Koska lajiteltuun menetelmรครคn ei vรคlitetรค lisรคparametreja, uusi luettelo lajitellaan oletusarvoisesti nousevassa jรคrjestyksessรค.
- Lajittelutoiminto ei tee uutta luetteloa.
Seuraavassa on keskeisiรค yhtรคlรคisyyksiรค ja eroja koskevia kohtia:
| Lajiteltu toiminto | Lajittelutoiminto |
|---|---|
| Lajiteltu toiminto sisรครคn Python on sisรครคnrakennettu funktio, joka ottaa listan_nimi pakollisena parametrina. | Lajittelutoiminto ei ota alkuperรคistรค luetteloa parametrina. |
| Lajiteltu menetelmรค palauttaa uuden luettelon | Lajittelutoiminto ei palauta uutta luetteloa |
| Lajiteltua funktiota tulisi kรคyttรครค iteroitavissa listoissa | Lajittelutoimintoa tulisi kรคyttรครค ei-iteroitavissa listoissa. |
| Se ei muuta alkuperรคistรค luetteloa ja antaa meille mahdollisuuden sรคilyttรครค alkuperรคiset tiedot. | Lajittelutoiminto muuttaa alkuperรคistรค toimintoa ja vie siten vรคhemmรคn muistitilaa |
Milloin lajittelutapaa tai lajittelutapaa kannattaa hyรถdyntรครค?
Otetaan esimerkki, joka edellyttรครค kilpailutietojen lajittelua. Ohjelma kรคyttรครค ruokalappunumeroa ja sekunneissa kuluvaa aikaa kilpailun loppuun saattamiseksi.
Python koodi:
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)
lรคhtรถ:
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)]
Code Selitys:
- Perusluettelo lajitellaan sekรค lajittelu- ettรค lajittelufunktiolla.
- Perusluettelo katoaa, kun lajittelutoimintoa kรคytetรครคn.
- Lajittelutoimintoa ei pitรคisi soveltaa alkuperรคiseen tietojoukkoon. Sitรค tulee kรคyttรครค, kun alkuperรคisestรค tietojoukosta on kopioversio.
- Lajiteltu-toiminto sรคilyttรครค alkuperรคisen luettelon. Se ei ohita sitรค.
- Tรคmรค tarjoaa paremman tracsujuvuus ja tehokas tiedonhallinta.

