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.
- Řazení Seznam ve vzestupném pořadí
- Řazení Seznam v sestupném pořadí
- Seřadit s vlastní funkce Pomocí klíče
- Řazení Seznam strun podle délky
- Seznam řazení N-tice konkrétním prvkem
- 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í |
| 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 a | Podporuje také a |
| 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(). .