Lajittelutoimintoa voidaan käyttää listan lajitteluun sekä nousevaan että laskevaan järjestykseen. Sitä voidaan käyttää kokonaislukujen, liukulukujen, merkkijonojen ja muiden luetteloiden lajitteluun Python . Sen aikamonimutkaisuus on O(NlogN).
Python sort() -syntaksi
Pythonin sort()-funktion syntaksi on seuraava.
Syntaksi: listan_nimi.lajittelu(avain=…, käänteinen=…)
Parametrit:
Oletusarvoisesti Python sort() ei vaadi ylimääräisiä parametreja ja lajittelee luettelon nousevaan järjestykseen. Siinä on kuitenkin kaksi valinnaista parametria:
- avain: toiminto, joka toimii avaimena lajittelun vertailussa
- käänteinen: Jos totta, luettelo on lajiteltu laskevaan järjestykseen.
Palautusarvo: Sort() ei palauta mitään, vaan muuttaa alkuperäistä listaa välitetyn parametrin mukaan.
Mikä on Python sort()-funktio?
Pythonissa,sort()>funktio on menetelmä, joka kuuluu luetteloon. Sitä käytetään oletusarvoisesti lajittelemaan pythonissa tai luettelon elementit nousevassa järjestyksessä. Thesort()>-menetelmä muokkaa alkuperäistä luetteloa paikan päällä, mikä tarkoittaa, että se järjestää uudelleen elementit suoraan olemassa olevan luetteloobjektin sisällä uuden lajitellun luettelon luomisen sijaan.
Sort() Python-esimerkeissä
Perusesimerkki Python sort() -menetelmästä.
alennuskuva
Esimerkki: Tässä esimerkissä alla oleva koodi määrittelee listan nimeltäunsorted_list>numeeristen elementtien kanssa. Thesort()>menetelmää sovelletaan sitten luetteloon, joka järjestää sen elementit uudelleen nousevaan järjestykseen. Lajiteltu luettelo tulostetaan, ja siinä näkyy lajittelun tulos.
Python 3
unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)> |
>
>
Lähtö:
Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>
Erilaisia tapoja lajitella () Pythonissa
Pythonissa,sort()>on sisäänrakennettu menetelmä, jota käytetään lajittelemaan elementtejä luettelossa nousevaan järjestykseen. Se muuttaa alkuperäistä luetteloa paikalleen, mikä tarkoittaa, että se järjestää elementit uudelleen suoraan luettelossa luomatta uutta luetteloa. Thesort()>menetelmä ei palauta mitään arvoa; se vain lajittelee luettelon ja päivittää sen.
- Lajittelu Luettelo nousevassa järjestyksessä
- Lajittelu Luettelo laskevassa järjestyksessä
- Lajittele kanssa mukautettu toiminto Avaimen käyttö
- Lajittelu Luettelo merkkijonoista pituuden mukaan
- Lajitteluluettelo Tuples tietyllä elementillä
- Lajitteluluettelo Sanakirjat tietyllä avaimella
Lajittele() Pythonissa käyttämällä lajitteluluetteloa nousevassa järjestyksessä
Pythonin 'sort()'-menetelmää käytetään lajittelemaan elementtiluettelo nousevaan järjestykseen. Se muuttaa alkuperäistä luetteloa paikan päällä järjestämällä sen elementit kasvavaan numeeriseen tai leksikografiseen järjestykseen. Menetelmää voidaan soveltaa luetteloihin, jotka sisältävät numeerisia arvoja, merkkijonoja tai molempien yhdistelmän. Pythonin sort() lajittelee oletusarvoisesti listan nousevaan järjestykseen, jos emme anna sille mitään parametreja.
Esimerkki : Tässä esimerkissä alla oleva koodi näyttää lajittelutoiminnot erityyppisissä luetteloissa. Ensin se lajittelee kokonaislukuluettelon ('numerot') nousevaan järjestykseen 'sort()'-menetelmällä. Seuraavaksi se lajittelee liukulukujen ('desimaaliluku') luettelon nousevaan järjestykseen.
Python 3
# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort()> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort()> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort()> print>(words)> |
>
>
Lähtö:
[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>
Lajittele() Pythonissa käyttämällä lajitteluluetteloa laskevassa järjestyksessä
Jos haluat lajitella luettelon laskevaan järjestykseen, aseta Pythonin sort()-funktion käänteisparametriksi True.
my_list.sort(reverse=True)>
Esimerkki: I Tämä esimerkkikoodi määrittelee kolme erityyppistä luetteloa (kokonaisluvut, liukulukuluvut ja merkkijonot), lajittelee ne laskevaan järjestykseen 'sort'-menetelmällä 'reverse=True'-parametrin kanssa ja tulostaa sitten lajitellut luettelot.
Python 3
# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort(reverse>=>True>)> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort(reverse>=>True>)> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort(reverse>=>True>)> print>(words)> |
>
>
Lähtö:
[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>
Lajittele mukautetulla toiminnolla käyttämällä avainta
Tässä menetelmässä kuvataan lajittelutoiminto mukautetulla funktiolla käyttämällä avainparametria. Tämä mahdollistaa lajittelun mukautetun toiminnon määrittämän tietyn kriteerin perusteella oletusjärjestyksen sijaan. Mukautettu toiminto on käytössä jokaisessa elementissä, ja luettelo lajitellaan sen mukaan.
Esimerkki : Tässä esimerkissä koodi määrittää funktion 'sortSecond', joka palauttaa monikon toisen elementin. Sen jälkeen se luo monikkoluettelon 'lista1' ja lajittelee sen nousevaan järjestykseen toisen elementin perusteella käyttämällä 'sortSecond'-funktiota.
Python 3
def> sortSecond(val):> >return> val[>1>]> # list1 to demonstrate the use of sorting> # using second key> list1>=> [(>1>,>2>),(>3>,>3>),(>1>,>1>)]> # sorts the array in ascending according to> # second element> list1.sort(key>=>sortSecond)> print>(list1)> # sorts the array in descending according to> # second element> list1.sort(key>=>sortSecond,reverse>=>True>)> print>(list1)> |
>
>
Lähtö:
[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>
Lajittele merkkijonojen luettelo pituuden mukaan Pythonin Sort()-kohdassa
Tässä menetelmässä lajittelemme merkkijonoluettelon niiden pituuden nousevaan järjestykseen käyttämällä 'sort()'-funktiota, jossa on 'key=len'. Tämä tarkoittaa, että merkkijonot järjestetään lyhyimmästä pisimpään tuloksena olevaan lajiteltuun luetteloon.
Esimerkki: Tässä esimerkissä alla oleva koodi määrittää merkkijonoluettelon,words>, ja lajittelee sen sitten kunkin merkkijonon pituuden perusteella käyttämällälen()>toimii lajitteluavaimena. Lopuksi se tulostaa lajitellun luettelon.
Python 3
# Original list of strings> words>=> [>'apple'>,>'banana'>,>'kiwi'>,>'orange'>,>'grape'>]> # Sorting by length using the len() function as the key> words.sort(key>=>len>)> # Displaying the sorted list> print>(>'Sorted by Length:'>, words)> |
>
>
Lähtö:
Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>
Tuples-luettelon lajittelu tietyn elementin mukaan
Lajittele monikkoluettelo tietyn elementin mukaan käyttämällä 'sort()'-funktiota 'key'-parametrin kanssa. Määritä avaimeksi lambda-funktio, joka kohdistaa halutun elementin indeksiin. Tuples lajitellaan kyseisen elementin arvojen perusteella.
Esimerkki: Tässä menetelmässä koodi määrittelee luettelon monista nimeltä 'ihmiset', jossa jokainen monikko edustaa henkilön nimeä ja ikää. Sitten se lajittelee luettelon kunkin monikon toisen elementin (age) perusteella käyttämälläsort>menetelmä ja lambda toimivat lajitteluavaimena.
Python 3
# Original list of tuples> people>=> [(>'Alice'>,>25>), (>'Bob'>,>30>), (>'Charlie'>,>22>), (>'David'>,>28>)]> # Sorting by the second element of each tuple (age)> people.sort(key>=>lambda> x: x[>1>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, people)> |
>
>
Lähtö:
Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]> Sanakirjaluettelon lajittelu tietyn avaimen mukaan
Tämä menetelmä sisältää 'sort()'-funktion käyttämisen Pythonin sanakirjaluettelossa. Määrittämällä avainparametriksi lambda-funktion voit lajitella luettelon kunkin sanakirjan tietyn avaimen perusteella. Tämä mahdollistaa sanakirjojen luettelon järjestämisen nousevaan järjestykseen valittuun avaimeen liittyvien arvojen mukaan.
Esimerkki : Tässä esimerkissä koodi määrittää luettelon sanakirjoista, joita kutsutaanstudents>, jossa jokainen sanakirja edustaa opiskelijaa nimi- ja ikäavaimeineen. Sitten se lajittelee sanakirjaluettelon kunkin sanakirjan ikäavaimen perusteella käyttämälläsort>menetelmä ja lambda toimii avaimena.
Python 3
# Original list of dictionaries> students>=> [> >{>'name'>:>'Alice'>,>'age'>:>25>},> >{>'name'>:>'Bob'>,>'age'>:>30>},> >{>'name'>:>'Charlie'>,>'age'>:>22>},> >{>'name'>:>'David'>,>'age'>:>28>},> ]> # Sorting by the 'age' key in each dictionary> students.sort(key>=>lambda> x: x[>'age'>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, students)> |
>
>
Lähtö:
Sorted by Age: [ {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 28}, {'name': 'Bob', 'age': 30} ]> Ero sorted()- ja sort()-funktioiden välillä Pythonissa
Katsotaanpa eroa lajiteltu() ja sort()-funktio Pythonissa:
| Python lajiteltu() | Python sort() |
|---|---|
| Sorted()-funktio palauttaa lajitellun luettelon tietystä iteroitavasta objektista. | Sort()-menetelmä lajittelee listan. |
| Voimme määrittää nousevan tai laskevan järjestyksen, kun käytämme lajiteltu()-funktiota | Se lajittelee luettelon oletusarvoisesti nousevaan järjestykseen. |
| Syntaksi : lajiteltu(iteroitava, avain=avain, käänteinen=käänteinen) | Syntaksi : list.sort(reverse=True|False, key=myFunc) |
| Sen palautustyyppi on lajiteltu luettelo. | Voimme käyttää sitä myös listan lajitteluun laskevaan järjestykseen. |
| Voidaan käyttää minkä tahansa iteroitavan kanssa, vaikka elementtien vertailua ei olisi määritelty | Edellyttää, että elementit ovat vertailukelpoisia käyttämällä |
| Ylläpitää yhtäläisten elementtien suhteellisen järjestyksen, mikä tekee siitä vakaan. | Ei ehkä ole vakaa; yhtäläisten elementtien järjestys voi muuttua. |
| O(n log n) ajan monimutkaisuus useimmissa tapauksissa. | O(n log n) ajan monimutkaisuus useimmissa tapauksissa. |
| Se voi lajitella vain luettelon, joka sisältää vain yhden tyyppisen arvon. | Se järjestää luettelon paikoilleen. |
| Tukee a | |
| Vaatii lisämuistia uutta lajiteltua luetteloa varten. | Suorittaa lajittelun paikan päällä säästäen muistia. |
Jos haluat tietää lisää, katso Python-ero sorted()- ja sort()-funktioiden välillä .