Funkciu triedenia možno použiť na triedenie zoznamu vo vzostupnom aj zostupnom poradí. Môže sa použiť na triedenie zoznamov celých čísel, čísel s pohyblivou rádovou čiarkou, reťazcov a ďalších Python . Jeho časová zložitosť je O(NlogN).
Syntax sort() Pythonu
Syntax funkcie sort() v Pythone je nasledovná.
Syntax: list_name.sort(key=…, reverse=…)
Parametre:
V predvolenom nastavení Python sort() nevyžaduje žiadne ďalšie parametre a triedi zoznam vo vzostupnom poradí. Má však dva voliteľné parametre:
- kľúč: funkcia, ktorá slúži ako kľúč na porovnávanie triedenia
- obrátene: Ak je pravda, zoznam je zoradený v zostupnom poradí.
Návratová hodnota: Sort() nevracia nič, ale mení pôvodný zoznam podľa odovzdaného parametra.
Čo je funkcia sort() Pythonu?
V Pythone,sort()>funkcia je metóda, ktorá patrí do zoznamu. V predvolenom nastavení sa používa na triedenie v pythone alebo prvkov zoznamu vo vzostupnom poradí. Thesort()>metóda modifikuje pôvodný zoznam na mieste, čo znamená, že preusporiada prvky priamo v existujúcom objekte zoznamu, namiesto toho, aby vytvoril nový triedený zoznam.
Sort() v príkladoch Pythonu
Základný príklad metódy sort() v Pythone.
čo je používateľské meno
Príklad: V tomto príklade nižšie uvedený kód definuje zoznam s názvomunsorted_list>s číselnými prvkami. Thesort()>Metóda sa potom aplikuje na zoznam, ktorý preusporiada svoje prvky vo vzostupnom poradí. Zoradený zoznam sa potom vytlačí a zobrazí výsledok operácie triedenia.
Python3
unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)> |
>
>
Výkon:
Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>
Rôzne spôsoby triedenia () v Pythone
V Pythone,sort()>je vstavaná metóda používaná na triedenie prvkov v zozname vo vzostupnom poradí. Upravuje pôvodný zoznam na mieste, čo znamená, že mení poradie prvkov priamo v zozname bez vytvárania nového zoznamu. Thesort()>metóda nevracia žiadnu hodnotu; jednoducho zoradí zoznam a aktualizuje ho.
- Triedenie Zoznam vo vzostupnom poradí
- Triedenie Zoznam v zostupnom poradí
- Zoradiť pomocou vlastná funkcia Pomocou kľúča
- Triedenie Zoznam strún podľa dĺžky
- Zoznam triedenia Tuples špecifickým prvkom
- Zoznam triedenia Slovníky špecifickým kľúčom
Sort() v Pythone pomocou triediaceho zoznamu vo vzostupnom poradí
Metóda `sort()` v Pythone sa používa na triedenie zoznamu prvkov vo vzostupnom poradí. Upravuje pôvodný zoznam na mieste, pričom jeho prvky sú usporiadané v rastúcom číselnom alebo lexikografickom poradí. Metóda je použiteľná pre zoznamy obsahujúce číselné hodnoty, reťazce alebo kombináciu oboch. V predvolenom nastavení sort() v Pythone triedi zoznam vo vzostupnom poradí, ak mu neposkytneme žiadne parametre.
Príklad : V tomto príklade nižšie uvedený kód demonštruje operácie triedenia na rôznych typoch zoznamov. Najprv triedi zoznam celých čísel (`čísel`) vo vzostupnom poradí pomocou metódy `sort()'. Ďalej zoradí zoznam čísel s pohyblivou rádovou čiarkou (`desatinné číslo`) vo vzostupnom poradí.
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)> |
>
>
Výkon:
[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>
Sort() v Pythone pomocou triediaceho zoznamu v zostupnom poradí
Ak chcete zoradiť zoznam v zostupnom poradí, nastavte parameter reverse na hodnotu True funkcie sort() v Pythone.
my_list.sort(reverse=True)>
Príklad: I Tento príklad kódu definuje tri zoznamy rôznych typov (celé čísla, čísla s pohyblivou rádovou čiarkou a reťazce), triedi ich v zostupnom poradí pomocou metódy `sort` s parametrom `reverse=True` a potom vytlačí zoradené zoznamy.
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)> |
>
>
Výkon:
[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>
Triediť pomocou užívateľskej funkcie pomocou klávesu
V tejto metóde sa opisuje operácia triedenia s vlastnou funkciou pomocou kľúčového parametra. To umožňuje triedenie na základe špecifického kritéria definovaného vlastnou funkciou a nie predvoleného poradia. Vlastná funkcia sa použije na každý prvok a zoznam sa podľa toho zoradí.
Príklad : V tomto príklade kód definuje funkciu `sortSecond`, ktorá vracia druhý prvok n-tice. Potom vytvorí zoznam n-tic `list1` a zoradí ho vzostupne na základe druhého prvku pomocou funkcie `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)> |
>
>
Výkon:
[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>
Triedenie zoznamu reťazcov podľa dĺžky v Sort() v Pythone
V tejto metóde triedime zoznam reťazcov vo vzostupnom poradí ich dĺžok pomocou funkcie `sort()` s `key=len`. To znamená, že reťazce sú vo výslednom zoradenom zozname usporiadané od najkratšej po najdlhšiu dĺžku.
Príklad: V tomto príklade nižšie uvedený kód definuje zoznam reťazcov,words>a potom ho zoradí na základe dĺžky každého reťazca pomocoulen()>funguje ako triediaci kľúč. Nakoniec vytlačí zoradený zoznam.
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)> |
>
>
Výkon :
Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>
Triedenie zoznamu n-tic podľa konkrétneho prvku
Ak chcete zoradiť zoznam n-tic podľa konkrétneho prvku, použite funkciu `sort()` s parametrom `key`. Zadajte funkciu lambda ako kľúč so zacielením na index požadovaného prvku. N-tice budú zoradené na základe hodnôt tohto špecifického prvku.
Príklad: V tejto metóde kód definuje zoznam n-tic s názvom „ľudia“, kde každá n-tica predstavuje meno a vek osoby. Potom zoradí zoznam na základe druhého prvku každej n-tice (vek) pomocousort>metóda a funkcia lambda ako kľúč triedenia.
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)> |
>
>
Výkon :
Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]> Triedenie zoznamu slovníkov podľa špecifického kľúča
Táto metóda zahŕňa použitie funkcie `sort()` v zozname slovníkov v Pythone. Zadaním funkcie lambda ako parametra kľúča môžete zoznam triediť na základe konkrétneho kľúča v rámci každého slovníka. To umožňuje usporiadať zoznam slovníkov vo vzostupnom poradí podľa hodnôt spojených so zvoleným kľúčom.
Príklad : V tomto príklade kód definuje zoznam nazývaných slovníkovstudents>, kde každý slovník predstavuje študenta s kľúčom mena a veku. Potom zoradí zoznam slovníkov podľa vekového kľúča v každom slovníku pomocousort>a kľúčom je funkcia lambda.
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)> |
>
>
Výkon :
Sorted by Age: [ {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 28}, {'name': 'Bob', 'age': 30} ]> Rozdiel medzi funkciou sort() a sort() v Pythone
Pozrime sa na rozdiel medzi zoradené () a funkcia sort() v Pythone:
| Python zoradený() | Python sort() |
|---|---|
| Funkcia sorted() vracia zoradený zoznam konkrétneho iterovateľného objektu. | Metóda sort() triedi zoznam. |
| Pri použití funkcie sort() môžeme určiť vzostupné alebo zostupné poradie | Štandardne triedi zoznam vo vzostupnom poradí. |
| Syntax : zoradené (iterovateľné, kľúč=kľúč, obrátený=obrátený) | Syntax : list.sort(reverse=True|False, key=myFunc) |
| Jeho návratovým typom je triedený zoznam. | Môžeme ho použiť aj na zoradenie zoznamu v zostupnom poradí. |
| Dá sa použiť s akýmkoľvek iterovateľným, aj keď porovnanie medzi prvkami nie je definované | Vyžaduje, aby boli prvky porovnateľné pomocou |
| Zachováva relatívne poradie rovnakých prvkov, vďaka čomu je stabilný. | Nemusí byť stabilný; poradie rovnakých prvkov sa môže zmeniť. |
| O(n log n) časová zložitosť pre väčšinu prípadov. | O(n log n) časová zložitosť pre väčšinu prípadov. |
| Dokáže zoradiť iba zoznam, ktorý obsahuje iba jeden typ hodnoty. | Zoraďuje zoznam na mieste. |
| Podporuje a | Podporuje tiež a |
| Vyžaduje dodatočnú pamäť pre nový zoradený zoznam. | Vykoná triedenie na mieste, čím šetrí pamäť. |
Ak chcete vedieť viac, pozrite si Rozdiel v Pythone medzi funkciami sort() a sort(). .