logo

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í. 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.

  1. Triedenie Zoznam vo vzostupnom poradí
  2. Triedenie Zoznam v zostupnom poradí
  3. Zoradiť pomocou vlastná funkcia Pomocou kľúča
  4. Triedenie Zoznam strún podľa dĺžky
  5. Zoznam triedenia Tuples špecifickým prvkom
  6. 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<>a>>operátorov

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 akey>parameter pre vlastné kritériá triedenia.

Podporuje tiež akey>parameter pre vlastné kritériá triedenia.

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(). .