logo

sort() v Pythonu

Pomocí funkce řazení lze seznam seřadit ve vzestupném i sestupném pořadí. Lze jej použít k řazení seznamů celých čísel, čísel s plovoucí desetinnou čárkou, řetězců a dalších Krajta . Jeho časová složitost je O(NlogN).

Syntaxe sort() Pythonu

Syntaxe funkce sort() v Pythonu je následující.



Syntax: list_name.sort(key=…, reverse=…)

Parametry:

Ve výchozím nastavení Python sort() nevyžaduje žádné další parametry a třídí seznam ve vzestupném pořadí. Má však dva volitelné parametry:



  • klíč: funkce, která slouží jako klíč pro porovnání řazení
  • zvrátit: Pokud je true, seznam je seřazen sestupně.

Návratová hodnota: Sort() nevrací nic, ale mění původní seznam podle předaného parametru.

Co je funkce sort() Pythonu?

V Pythonu jesort()>funkce je metoda, která patří do seznamu. Ve výchozím nastavení se používá k řazení v pythonu nebo prvků seznamu ve vzestupném pořadí. Thesort()>metoda upravuje původní seznam na místě, což znamená, že přeskupuje prvky přímo v existujícím objektu seznamu, spíše než vytváří nový seřazený seznam.

Sort() v příkladech Pythonu

Základní příklad metody sort() Pythonu.



markdown obrázky

Příklad: V tomto příkladu níže uvedený kód definuje seznam s názvemunsorted_list>s číselnými prvky. Thesort()>Metoda se pak aplikuje na seznam, který přeskupí své prvky ve vzestupném pořadí. Seřazený seznam se poté vytiskne a zobrazí výsledek operace třídění.

Python3




unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)>

>

>

Výstup:

Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>

Různé způsoby řazení () v Pythonu

v Pythonu,sort()>je vestavěná metoda používaná k řazení prvků v seznamu ve vzestupném pořadí. Upraví původní seznam na místě, což znamená, že změní pořadí prvků přímo v seznamu bez vytvoření nového seznamu. Thesort()>metoda nevrací žádnou hodnotu; jednoduše seřadí seznam a aktualizuje jej.

  1. Řazení Seznam ve vzestupném pořadí
  2. Řazení Seznam v sestupném pořadí
  3. Seřadit s vlastní funkce Pomocí klíče
  4. Řazení Seznam strun podle délky
  5. Seznam řazení N-tice konkrétním prvkem
  6. Seznam řazení Slovníky specifickým klíčem

Sort() v Pythonu pomocí seznamu řazení ve vzestupném pořadí

Metoda `sort()` v Pythonu se používá k řazení seznamu prvků ve vzestupném pořadí. Upravuje původní seznam na místě a přeskupuje jeho prvky tak, aby byly v rostoucím číselném nebo lexikografickém pořadí. Metoda je použitelná pro seznamy obsahující číselné hodnoty, řetězce nebo kombinaci obou. Standardně sort() v Pythonu třídí seznam vzestupně, pokud mu neposkytneme žádné parametry.

Příklad : V tomto příkladu níže uvedený kód ukazuje operace řazení na různých typech seznamů. Nejprve seřadí seznam celých čísel (`čísel`) ve vzestupném pořadí pomocí metody `sort()`. Dále seřadí seznam čísel s plovoucí desetinnou čárkou (`desetinné číslo`) ve vzestupném pořadí.

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ýstup:

[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>

Sort() v Pythonu pomocí seznamu řazení v sestupném pořadí

Chcete-li seznam seřadit v sestupném pořadí, nastavte parametr reverse na True funkce sort() v Pythonu.

my_list.sort(reverse=True)>

Příklad: I Tento příklad kódu definuje tři seznamy různých typů (celá čísla, čísla s plovoucí desetinnou čárkou a řetězce), seřadí je v sestupném pořadí pomocí metody `sort` s parametrem `reverse=True` a poté seřazené seznamy vytiskne.

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ýstup:

[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>

Třídit pomocí uživatelské funkce pomocí tlačítka

V této metodě je popsána operace řazení s uživatelskou funkcí pomocí parametru key. To umožňuje řazení na základě specifického kritéria definovaného vlastní funkcí, nikoli výchozího řazení. Vlastní funkce se použije na každý prvek a seznam se podle toho seřadí.

Příklad : V tomto příkladu kód definuje funkci `sortSecond`, která vrací druhý prvek n-tice. Poté vytvoří seznam n-tic `list1` a seřadí jej vzestupně na základě druhého prvku pomocí funkce `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ýstup:

[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>

Třídění seznamu řetězců podle délky v Sort() v Pythonu

V této metodě třídíme seznam řetězců ve vzestupném pořadí jejich délek pomocí funkce `sort()` s `key=len`. To znamená, že řetězce jsou ve výsledném seřazeném seznamu seřazeny od nejkratší po nejdelší délku.

Příklad: V tomto příkladu níže uvedený kód definuje seznam řetězců,words>a pak jej seřadí na základě délky každého řetězce pomocílen()>fungovat jako třídicí klíč. Nakonec vytiskne seřazený seznam.

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ýstup :

Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>

Třídění seznamu n-tic podle konkrétního prvku

Chcete-li seřadit seznam n-tic podle určitého prvku, použijte funkci `sort()` s parametrem `key`. Jako klíč zadejte funkci lambda, která cílí na index požadovaného prvku. N-tice budou seřazeny podle hodnot tohoto konkrétního prvku.

Příklad: V této metodě kód definuje seznam n-tic s názvem „lidé“, kde každá n-tice představuje jméno a věk osoby. Poté seřadí seznam na základě druhého prvku každé n-tice (věku) pomocísort>metoda a funkce lambda jako třídicí klíč.

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ýstup :

Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]>

Řazení seznamu slovníků podle konkrétního klíče

Tato metoda zahrnuje použití funkce `sort()` na seznamu slovníků v Pythonu. Zadáním funkce lambda jako parametru klíče můžete seznam třídit na základě konkrétního klíče v každém slovníku. To umožňuje uspořádat seznam slovníků ve vzestupném pořadí podle hodnot spojených se zvoleným klíčem.

Příklad : V tomto příkladu kód definuje seznam nazvaných slovníkůstudents>, kde každý slovník představuje studenta se jménem a věkem. Poté seřadí seznam slovníků podle věkového klíče v každém slovníku pomocísort>a lambda funkce jako klíč.

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ýstup :

Sorted by Age: [  {'name': 'Charlie', 'age': 22},  {'name': 'Alice', 'age': 25},  {'name': 'David', 'age': 28},  {'name': 'Bob', 'age': 30} ]>

Rozdíl mezi funkcí sort() a sort() v Pythonu

Podívejme se na rozdíl mezi seřazeno() a funkce sort() v Pythonu:

Python sorted()

Python sort()

Funkce sort() vrací seřazený seznam konkrétního iterovatelného objektu. Metoda sort() seřadí seznam.
Při použití funkce sort() můžeme určit vzestupné nebo sestupné pořadí Ve výchozím nastavení seřadí seznam vzestupně.
Syntax : seřazeno (iterovatelné, klíč=klíč, obráceně=obrátit) Syntax : list.sort(reverse=True|False, key=myFunc)
Jeho návratovým typem je seřazený seznam. Můžeme jej také použít pro řazení seznamu v sestupném pořadí.

Lze použít s libovolnou iterovatelnou, i když není definováno srovnání mezi prvky

Vyžaduje, aby prvky byly srovnatelné pomocí<>a>>operátory

Udržuje relativní pořadí stejných prvků, čímž je stabilní.

Nemusí být stabilní; pořadí stejných prvků se může změnit.

O(n log n) časová složitost pro většinu případů.

O(n log n) časová složitost pro většinu případů.

Může seřadit pouze seznam, který obsahuje pouze jeden typ hodnoty. Seřadí seznam na místě.

Podporuje akey>parametr pro vlastní kritéria řazení.

Podporuje také akey>parametr pro vlastní kritéria řazení.

Vyžaduje další paměť pro nový seřazený seznam.

Provádí třídění na místě a šetří paměť.

Chcete-li vědět více, podívejte se Rozdíl v Pythonu mezi funkcí sort() a sort(). .