Python List sort() esimerkkien kanssa

Mikรค on sort()-menetelmรค Python?

Lajittele toiminto sisรครคn Python auttaa lajittelemaan luettelon nousevaan tai laskevaan jรคrjestykseen. Sitรค voidaan kรคyttรครค numeroluettelon, monikot ja merkkijonoluettelon lajitteluun. Se ei luo erillistรค luetteloa, vaan muokkaa tai lajittelee alkuperรคistรค.

Lajittelumenetelmรคn syntaksi sisรครคn Python

Lajittelutoiminnolla on seuraava alla lueteltu syntaksi: โ€“

List.sort(key=โ€ฆ, reverse=โ€ฆ)

Lajittelutoiminnolla on kaksi valinnaista parametria, jotka on lueteltu alla: โ€“

  • Avain:- Tรคtรค kรคytetรครคn lajittelemaan funktio lajittelukriteerin perusteella.
  • Reverse: โ€“ se ottaa arvon joko tosi tai epรคtosi. Jos tosi, tรคmรค mukautettu funktio lajittelee luettelon 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']

Koodin 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 monista ja mukautetusta funktiosta, joka havainnollistaa, kuinka lajittelutoiminto avainparametreineen auttaa lajittelemaan monikon 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)]

Koodin 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 toiminto, joka mรครคrittรครค esineen pituuden. Mรครคritettyรค pituutta voidaan kรคyttรครค lajittelutoiminnon indeksointiin. Tรคtรค varten mรครคritรคmme Lenin Python lajittelufunktion avainparametri.

Seuraavat Python koodi havainnollistaa kuinka Len-toimintoa kรคytetรครคn lajittelutoiminnon kanssa.

Python Koodi:

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']

Koodin selitys:

Listan kohteiden lajittelu Lenin avulla

  • 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รค sanat alto ja java ovat pituudeltaan 4, jotka on jรคrjestetty ensimmรคiseksi luettelossa, ja sen jรคlkeen Guru99, jonka pituus on 6.

Tรคmรค esimerkki havainnollistaa kรครคnteisen parametrin kรคsitettรค lajittelufunktiossa alla esitetyllรค tavalla: โ€“

Python Koodi:

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 lajittelussa. Tรคssรค on esimerkki: -

Python Koodi:

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}]

Koodin 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

Ennen kuin eroista tehdรครคn yhteenveto, meidรคn on ymmรคrrettรคvรค Lajiteltu-menetelmรคn syntaksi.

Python Syntaksi:

sorted (list_name, reverse=โ€ฆ., key=..)

Koodin 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 kuten alla nรคkyy: -

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

Koodin 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 huomioita tรคrkeimmistรค yhtรคlรคisyyksistรค ja eroista: โ€“

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)]

Koodin 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 jรคljitettรคvyyden ja tehokkaan tiedonhallinnan.

Yhteenveto

  • Lajittelutoiminto auttaa lajittelemaan numeerista ja merkkijonoluetteloa pythonissa.
  • Se voi myรถs auttaa lajittelussa.
  • Reverse ja key ovat funktion valinnaisia โ€‹โ€‹parametreja.
  • Jos tarvitaan erillinen lista ja samanaikaisesti alkuperรคinen lista, niin muuten on kรคytettรคvรค lajiteltua toimintoa, lajittelutoimintoa on kรคytettรคvรค optimoidun muistin kรคytรถn saavuttamiseksi.

Tiivistรค tรคmรค viesti seuraavasti: