Rūšiavimo funkciją galima naudoti sąrašui rūšiuoti tiek didėjančia, tiek mažėjančia tvarka. Jis gali būti naudojamas sveikųjų skaičių, slankiojo kablelio skaičių, eilučių ir kitų sąrašams rūšiuoti Python . Jo laiko sudėtingumas yra O (NlogN).
Python sort() sintaksė
Python funkcijos sort() sintaksė yra tokia.
Sintaksė: sąrašo_pavadinimas.rūšiavimas(raktas=…, atvirkštinis=…)
Parametrai:
Pagal numatytuosius nustatymus Python sort() nereikalauja jokių papildomų parametrų ir rūšiuoja sąrašą didėjančia tvarka. Tačiau jis turi du pasirenkamus parametrus:
- Raktas: funkcija, kuri naudojama kaip rūšiavimo palyginimo raktas
- atvirkščiai: Jei tiesa, sąrašas rūšiuojamas mažėjančia tvarka.
Grąžinimo vertė: Sort() nieko negrąžina, bet pakeičia pradinį sąrašą pagal perduotą parametrą.
Kas yra Python sort() funkcija?
Python,sort()>funkcija yra metodas, priklausantis sąrašui . Jis naudojamas rūšiuoti pagal python arba sąrašo elementus didėjančia tvarka. Thesort()>Metodas modifikuoja pradinį sąrašą vietoje, o tai reiškia, kad perskirsto elementus tiesiai esamame sąrašo objekte, o ne sukuria naują surūšiuotą sąrašą.
Rūšiuoti () Python pavyzdžiuose
Pagrindinis Python sort() metodo pavyzdys.
režisierius Karanas Joharas
Pavyzdys : Šiame pavyzdyje toliau pateiktas kodas apibrėžia sąrašą pavadinimuunsorted_list>su skaitiniais elementais. Thesort()>Tada sąrašui taikomas metodas, kuris pertvarko jo elementus didėjančia tvarka. Tada išspausdinamas surūšiuotas sąrašas, kuriame rodomas rūšiavimo operacijos rezultatas.
Python3
unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)> |
>
>
Išvestis:
Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>
Įvairūs rūšiavimo () būdai Python
Python,sort()>yra integruotas metodas, naudojamas rūšiuoti elementus sąraše didėjančia tvarka. Jis pakeičia pradinį sąrašą vietoje, o tai reiškia, kad elementai perskirstomi tiesiai sąraše, nekuriant naujo sąrašo. Thesort()>metodas negrąžina jokios reikšmės; jis tiesiog surūšiuoja sąrašą ir jį atnaujina.
- Rūšiavimas Sąrašas didėjančia tvarka
- Rūšiavimas Sąrašas mažėjančia tvarka
- Rūšiuoti su pasirinktinė funkcija Naudojant raktą
- Rūšiavimas Stygų sąrašas pagal ilgį
- Rūšiavimo sąrašas Kortelės pagal konkretų elementą
- Rūšiavimo sąrašas Žodynai pagal specialų raktą
Rūšiuoti () Python naudojant rūšiavimo sąrašą didėjančia tvarka
Python metodas „sort()“ naudojamas elementų sąrašui rūšiuoti didėjančia tvarka. Jis pakeičia pradinį sąrašą vietoje, pertvarkydamas jo elementus į didėjančią skaičių arba leksikografinę tvarką. Metodas taikomas sąrašams, kuriuose yra skaitinės reikšmės, eilutės arba jų derinys. Pagal numatytuosius nustatymus Sort() Python rūšiuoja sąrašą didėjančia tvarka, jei nepateikiame jokių parametrų.
Pavyzdys : Šiame pavyzdyje toliau pateiktas kodas parodo rūšiavimo operacijas skirtingų tipų sąrašuose. Pirma, jis surūšiuoja sveikųjų skaičių ('skaičių') sąrašą didėjančia tvarka, naudodamas 'rūšiavimo()' metodą. Tada jis surūšiuoja slankiojo kablelio skaičių („dešimtainio skaičiaus“) sąrašą didėjančia tvarka.
Python3
# 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)> |
>
>
Išvestis:
[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>
Rūšiuoti () Python naudojant rūšiavimo sąrašą mažėjančia tvarka
Norėdami rūšiuoti sąrašą mažėjančia tvarka, Python funkcijos sort() atvirkštinį parametrą nustatykite į True.
my_list.sort(reverse=True)>
Pavyzdys: I Šiame pavyzdiniame kode apibrėžiami trys skirtingų tipų sąrašai (sveikieji skaičiai, slankiojo kablelio skaičiai ir eilutės), surūšiuojami mažėjančia tvarka naudojant „rūšiavimo“ metodą su parametru „reverse=True“, o tada išspausdinami surūšiuoti sąrašai.
Python3
# 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)> |
>
>
Išvestis:
[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>
Rūšiuoti naudojant pasirinktinę funkciją naudojant klavišą
Šiame metode aprašoma rūšiavimo operacija su pasirinktine funkcija naudojant pagrindinį parametrą. Tai leidžia rūšiuoti pagal konkretų kriterijų, apibrėžtą pasirinktinės funkcijos, o ne pagal numatytąją tvarką. Pasirinktinė funkcija taikoma kiekvienam elementui, o sąrašas atitinkamai rūšiuojamas.
Pavyzdys : Šiame pavyzdyje kodas apibrėžia funkciją „sortSecond“, kuri grąžina antrąjį eilės elementą. Tada jis sukuria eilučių sąrašą „list1“ ir surūšiuoja jį didėjančia tvarka pagal antrąjį elementą, naudodama funkciją „sortSecond“.
Python3
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)> |
>
>
Išvestis:
[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>
Eilučių sąrašo rūšiavimas pagal ilgį „Sort()“ programoje Python
Taikydami šį metodą eilučių sąrašą surūšiuojame didėjimo tvarka pagal jų ilgį, naudodami funkciją „sort()“ su „key=len“. Tai reiškia, kad gautame surūšiuotame sąraše eilutės yra išdėstytos nuo trumpiausio iki ilgiausio.
Pavyzdys : Šiame pavyzdyje toliau pateiktas kodas apibrėžia eilučių sąrašą,words>, tada surūšiuoja pagal kiekvienos eilutės ilgį naudodamilen()>veikia kaip rūšiavimo klavišas. Galiausiai išspausdinamas surūšiuotas sąrašas.
Python3
# 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)> |
>
>
Išvestis:
Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>
Eilių sąrašo rūšiavimas pagal konkretų elementą
Norėdami rūšiuoti eilučių sąrašą pagal konkretų elementą, naudokite funkciją „sort()“ su parametru „key“. Nurodykite lambda funkciją kaip raktą, nukreipiantį į norimo elemento indeksą. Eilės bus rūšiuojamos pagal to konkretaus elemento reikšmes.
Pavyzdys : Šiuo metodu kodas apibrėžia eilučių, pavadintų „žmonės“, sąrašą, kur kiekviena eilutė nurodo asmens vardą ir amžių. Tada jis surūšiuoja sąrašą pagal antrąjį kiekvienos eilutės elementą (amžių), naudodamassort>metodas ir lambda veikia kaip rūšiavimo raktas.
Python3
# 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)> |
>
>
Išvestis:
Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]> Žodynų sąrašo rūšiavimas pagal konkretų raktą
Šis metodas apima funkcijos „sort()“ naudojimą Python žodynų sąraše. Nurodę lambda funkciją kaip pagrindinį parametrą, galite rūšiuoti sąrašą pagal konkretų raktą kiekviename žodyne. Tai leidžia žodynų sąrašą išdėstyti didėjančia tvarka pagal reikšmes, susijusias su pasirinktu raktu.
Pavyzdys : Šiame pavyzdyje kodas apibrėžia vadinamų žodynų sąrašąstudents>, kur kiekvienas žodynas žymi mokinį su vardo ir amžiaus raktais. Tada jis surūšiuoja žodynų sąrašą pagal amžiaus raktą kiekviename žodyne, naudodamassort>metodas ir lambda funkcija kaip raktas.
Python3
# 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)> |
>
>
Išvestis:
Sorted by Age: [ {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 28}, {'name': 'Bob', 'age': 30} ]> Skirtumas tarp rūšiavimo () ir sort () funkcijų Python
Pažiūrėkime skirtumą tarp surūšiuota () ir Rūšiuoti () funkciją Python:
| Python surūšiuotas () | Python sort() |
|---|---|
| Funkcija sorted() grąžina surūšiuotą konkretaus kartojamo objekto sąrašą. | Sort() metodas surūšiuoja sąrašą. |
| Naudodami funkciją sorted() galime nurodyti didėjančią arba mažėjančią tvarką | Pagal numatytuosius nustatymus jis rūšiuoja sąrašą didėjančia tvarka. |
| Sintaksė : surūšiuota (kartojama, raktas = raktas, atvirkštinis = atvirkštinis) | Sintaksė : list.sort(reverse=True|False, key=myFunc) |
| Jo grąžinimo tipas yra surūšiuotas sąrašas. | Taip pat galime jį naudoti norėdami rūšiuoti sąrašą mažėjančia tvarka. |
| Galima naudoti su bet kokia iteracija, net jei elementų palyginimas neapibrėžtas | Reikalaujama, kad elementai būtų palyginami naudojant |
| Išlaiko santykinę vienodų elementų tvarką, todėl ji yra stabili. | Gali būti ne stabilus; lygių elementų tvarka gali keistis. |
| O(n log n) laiko sudėtingumas daugeliu atvejų. | O(n log n) laiko sudėtingumas daugeliu atvejų. |
| Jis gali rūšiuoti tik sąrašą, kuriame yra tik vieno tipo reikšmė. | Jis surūšiuoja sąrašą į vietą. |
| Palaiko a | |
| Naujam surūšiuotam sąrašui reikia papildomos atminties. | Atlieka rūšiavimą vietoje, taupant atmintį. |
Norėdami sužinoti daugiau, žr Python skirtumas tarp rūšiavimo () ir rūšiavimo () funkcijų .