logo

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

  1. Sortowanie Lista w kolejności rosnącej
  2. Sortowanie Lista w kolejności malejącej
  3. Sortuj za pomocą funkcja niestandardowa Korzystanie z klucza
  4. Sortowanie Lista ciągów według długości
  5. Lista sortowania Krotki przez określony element
  6. 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<>I>>operatorzy

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ługujekey>parametr dla niestandardowych kryteriów sortowania.

Obsługuje również Akey>parametr dla niestandardowych kryteriów sortowania.

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