sort() v Pythone
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í. The sort()> 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.
Príklad: V tomto príklade nižšie uvedený kód definuje zoznam s názvom unsorted_list> s číselnými prvkami. The sort()> 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. The sort()> 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 pomocou len()> 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) pomocou sort> 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íkov students> , 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 pomocou sort> 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(). .