Funkcja sortowania umożliwia sortowanie listy zarówno w kolejności rosnącej, jak i malejącej. Można go używać do sortowania list liczb całkowitych, liczb zmiennoprzecinkowych, ciągów znaków i innych Pyton . Jego złożoność czasowa wynosi O(NlogN).
Składnia sort() w Pythonie
Składnia funkcji sort() w Pythonie jest następująca.
Składnia: nazwa_listy.sort(klucz=…, rewers=…)
Parametry:
Domyślnie funkcja sort() w Pythonie nie wymaga żadnych dodatkowych parametrów i sortuje listę w kolejności rosnącej. Ma jednak dwa opcjonalne parametry:
- klucz: funkcja służąca jako klucz do porównania sortowania
- odwracać: Jeśli ma wartość true, lista jest sortowana w kolejności malejącej.
Wartość zwracana: Sort() niczego nie zwraca, lecz zmienia oryginalną listę zgodnie z przekazanym parametrem.
Co to jest funkcja sort() w Pythonie?
W Pythoniesort()>funkcja jest metodą należącą do listy. Domyślnie służy do sortowania w Pythonie lub elementów listy w kolejności rosnącej. Thesort()>Metoda modyfikuje oryginalną listę na miejscu, co oznacza, że zmienia kolejność elementów bezpośrednio w istniejącym obiekcie listy, zamiast tworzyć nową posortowaną listę.
Sort() w przykładach Pythona
Podstawowy przykład metody sort() w Pythonie.
jak zainicjować tablicę w Javie
Przykład : W tym przykładzie poniższy kod definiuje listę o nazwieunsorted_list>z elementami numerycznymi. Thesort()>Metoda ta jest następnie stosowana do listy, która porządkuje jej elementy w kolejności rosnącej. Posortowana lista jest następnie drukowana, pokazując wynik operacji sortowania.
Python3
unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)> |
>
>
Wyjście:
Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>
Różne sposoby sortowania() w Pythonie
W Pythoniesort()>to wbudowana metoda służąca do sortowania elementów listy w kolejności rosnącej. Modyfikuje oryginalną listę w miejscu, co oznacza, że zmienia kolejność elementów bezpośrednio na liście, bez tworzenia nowej listy. Thesort()>metoda nie zwraca żadnej wartości; po prostu sortuje listę i aktualizuje ją.
- Sortowanie Lista w kolejności rosnącej
- Sortowanie Lista w kolejności malejącej
- Sortuj za pomocą funkcja niestandardowa Korzystanie z klucza
- Sortowanie Lista ciągów według długości
- Lista sortowania Krotki przez określony element
- Lista sortowania Słowniki za pomocą określonego klucza
Sort() w Pythonie przy użyciu listy sortowania w porządku rosnącym
Metoda `sort()` w Pythonie służy do sortowania listy elementów w porządku rosnącym. Modyfikuje oryginalną listę na miejscu, zmieniając jej elementy w rosnący porządek numeryczny lub leksykograficzny. Metodę można zastosować do list zawierających wartości liczbowe, ciągi znaków lub kombinację obu. Domyślnie funkcja sort() w Pythonie sortuje listę w kolejności rosnącej, jeśli nie podajemy żadnych parametrów.
Przykład : W tym przykładzie poniższy kod demonstruje operacje sortowania na różnych typach list. Najpierw sortuje listę liczb całkowitych („liczby”) w kolejności rosnącej przy użyciu metody „sort()”. Następnie sortuje listę liczb zmiennoprzecinkowych („liczba dziesiętna”) w kolejności rosnącej.
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)> |
>
>
Wyjście:
[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>
Sort() w Pythonie przy użyciu listy sortowania w kolejności malejącej
Aby posortować listę w kolejności malejącej, ustaw parametr Reverse na True funkcji sort() w Pythonie.
my_list.sort(reverse=True)>
Przykład: I n ten przykładowy kod definiuje trzy listy różnych typów (liczby całkowite, liczby zmiennoprzecinkowe i łańcuchy znaków), sortuje je w kolejności malejącej przy użyciu metody `sort` z parametrem `reverse=True`, a następnie drukuje posortowane listy.
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)> |
>
>
Wyjście:
[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>
Sortuj za pomocą funkcji niestandardowej za pomocą klawisza
W tej metodzie opisano operację sortowania za pomocą funkcji niestandardowej za pomocą parametru key. Umożliwia to sortowanie na podstawie określonego kryterium zdefiniowanego przez funkcję niestandardową, a nie na podstawie kolejności domyślnej. Do każdego elementu stosowana jest funkcja niestandardowa, a lista jest odpowiednio posortowana.
Przykład : W tym przykładzie kod definiuje funkcję „sortSecond”, która zwraca drugi element krotki. Następnie tworzy listę krotek „list1” i sortuje ją w kolejności rosnącej na podstawie drugiego elementu za pomocą funkcji „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)> |
>
>
Wyjście:
[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>
Sortowanie listy ciągów według długości w Sort() w Pythonie
W tej metodzie sortujemy listę ciągów w kolejności rosnącej według ich długości za pomocą funkcji `sort()` z parametrem `key=dł.`. Oznacza to, że na wynikowej posortowanej liście ciągi znaków są ułożone od najkrótszej do najdłuższej.
Przykład : W tym przykładzie poniższy kod definiuje listę ciągów znaków,words>, a następnie sortuje go na podstawie długości każdego ciągu za pomocą metodylen()>pełnić funkcję klucza sortującego. Na koniec drukuje posortowaną listę.
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)> |
>
>
Wyjście :
Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>
Sortowanie listy krotek według określonego elementu
Aby posortować listę krotek według określonego elementu, użyj funkcji `sort()` z parametrem `key`. Określ funkcję lambda jako klucz, kierując się indeksem żądanego elementu. Krotki zostaną posortowane na podstawie wartości tego konkretnego elementu.
Przykład : W tej metodzie kod definiuje listę krotek o nazwie „ludzie”, gdzie każda krotka reprezentuje imię i wiek osoby. Następnie sortuje listę na podstawie drugiego elementu każdej krotki (wieku) za pomocą metodysort>metodę i funkcję lambda jako klucz sortowania.
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)> |
>
>
Wyjście :
Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]> Sortowanie listy słowników według określonego klucza
Metoda ta polega na użyciu funkcji `sort()` na liście słowników w Pythonie. Określając funkcję lambda jako parametr klucza, możesz sortować listę na podstawie określonego klucza w każdym słowniku. Umożliwia to uporządkowanie listy słowników w kolejności rosnącej według wartości przypisanych do wybranego klucza.
Przykład : W tym przykładzie kod definiuje listę słowników o nazwiestudents>, gdzie każdy słownik reprezentuje ucznia z kluczami z imieniem i wiekiem. Następnie sortuje listę słowników na podstawie klucza wieku w każdym słowniku za pomocąsort>metodę i funkcję lambda jako klucz.
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)> |
>
>
Wyjście :
Sorted by Age: [ {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 28}, {'name': 'Bob', 'age': 30} ]> Różnica między funkcjami sorted() i sort() w Pythonie
Zobaczmy różnicę pomiędzy posortowane() i funkcja sort() w Pythonie:
| Posortowane w Pythonie() | Sortowanie w Pythonie() |
|---|---|
| Funkcja sorted() zwraca posortowaną listę określonego obiektu, który można iterować. | Metoda sort() sortuje listę. |
| Korzystając z funkcji sorted(), możemy określić kolejność rosnącą lub malejącą | Domyślnie sortuje listę w kolejności rosnącej. |
| Składnia : posortowane(iterowalne, klucz=klucz, odwrotne=odwrotne) | Składnia : list.sort(reverse=True|False, key=myFunc) |
| Typ zwracany to posortowana lista. | Możemy go również użyć do sortowania listy w kolejności malejącej. |
| Można go używać z dowolną iteracją, nawet jeśli porównanie między elementami nie jest zdefiniowane | Wymaga, aby elementy były porównywalne przy użyciu metody |
| Zachowuje względny porządek równych elementów, dzięki czemu jest stabilny. | Może nie być stabilny; kolejność równych elementów może ulec zmianie. |
| Złożoność czasowa O(n log n) w większości przypadków. | Złożoność czasowa O(n log n) w większości przypadków. |
| Może sortować tylko listę zawierającą tylko jeden typ wartości. | Sortuje listę w miejscu. |
| Obsługuje | Obsługuje również A |
| Wymaga dodatkowej pamięci dla nowej posortowanej listy. | Wykonuje sortowanie w miejscu, oszczędzając pamięć. |
Aby dowiedzieć się więcej proszę zapoznać się Różnica w Pythonie między funkcjami sorted() i sort(). .