sort() w Pythonie
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 Pythonie sort()> 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. The sort()> 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.
Przykład : W tym przykładzie poniższy kod definiuje listę o nazwie unsorted_list> z elementami numerycznymi. The sort()> 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 Pythonie sort()> 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. The sort()> 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ą metody len()> 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ą metody sort> 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 nazwie students> , 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(). .