Python Sortowanie listy() z przykładami
⚡ Inteligentne podsumowanie
Python Funkcja list sort() porządkuje elementy listy na swoim miejscu, domyślnie rosnąco lub malejąco poprzez parametr reverse, podczas gdy opcjonalna funkcja klawiszowa sortuje według niestandardowych kryteriów, takich jak długość, pola krotek lub funkcje zdefiniowane przez użytkownika.

Do czego służy metoda sort(). Python?
Funkcja sort() w Python Pomaga sortować listę w kolejności rosnącej lub malejącej. Można go używać do sortowania listy numerycznej, krotek i listy ciągów znaków. Nie tworzy osobnej listy, lecz modyfikuje lub sortuje oryginalną.
Składnia metody sortowania w Python
Funkcja sortowania ma następującą składnię:
List.sort(key=…, reverse=…)
Funkcja sortowania ma dwa opcjonalne parametry, mianowicie:
- Klucz: - Służy do sortowania funkcji w oparciu o kryterium sortowania.
- Reverse: – przyjmuje wartość true lub false. Jeśli true, ta funkcja niestandardowa sortuje listę w kolejności malejącej.
Sortowanie listy w kolejności rosnącej przy użyciu metody Sort w Python
In Python, funkcja sortowania domyślnie sortuje dowolną listę w kolejności rosnącej. Lista w porządku rosnącym ma najniższą wartość po lewej stronie, a najwyższa wartość po prawej stronie.
Przykład:
Python kod:
base_list=["Google","Reliance","Guru99","Content","Syntax"] base_list.sort() print("the base list after sorting is",base_list)
Wyjście:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Code Wyjaśnienie:
- Powyższa lista jest losowo zdefiniowaną listą ciągów.
- Funkcja sortowania Python pomaga w sortowaniu losowej listy w kolejności rosnącej, z najniższą długością słowa po lewej stronie i największą długością słowa po prawej stronie.
Sortowanie listy w kolejności malejącej
Funkcja sortowania umożliwia także sortowanie listy w kolejności malejącej. Można to określić jako porządek gdzie lista zaczyna się od najwyższej wartości i kończy na najniższej wartości.
Odwrotnemu parametrowi funkcji sortowania przypisuje się wartość true, aby lista była posortowana w kolejności malejącej.
Przyjrzyjmy się poniższemu przykładowi:
Python kod:
base_list=[100,600,400,8000,50] base_list.sort() print("the base list after sorting is",base_list) # Reverse Order base_list.sort(reverse=True) print("the base list after REVERSE sorting is",base_list)
Wyjście:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Uwaga: Upewnij się, że przypisanie słowa „True” do parametru odwrotnego zaczyna się od dużej litery „T”, aby uniknąć błędów w czasie wykonywania.
Sortowanie listy krotek przy użyciu metody Sort w Python
Python Krotki to zbiory niezmiennych elementów, które mają uporządkowaną sekwencję. PythonFunkcję sort można wykorzystać do sortowania listy krotek przy użyciu dostosowanej funkcji i wyrażenia lambda.
Można utworzyć niestandardową funkcję bez nazwy i przedstawić ją za pomocą wyrażenia lambda. Poniżej znajduje się składnia wyrażenia lambda:
Składnia:
Lambda arguments: expression
Powyższa składnia jest równoważna poniższemu kodowi Pythona:
def name (arguments): return expression
Poniżej znajduje się przykład krotki i dostosowanej funkcji ilustrującej sposób, w jaki funkcja sortowania z kluczowymi parametrami pomaga sortować elementy w krotce:
Python kod:
base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)] def get_key(base_list): return base_list[2] base_list.sort(key=get_key,reverse=True) print("The change in base list is as follows",base_list)
Wyjście:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Code Wyjaśnienie:
- Parametr Reverse jest zdefiniowany jako true, aby posortować krotkę w kolejności malejącej.
- Dostosowana funkcja pobiera drugi element krotki.
- Jest on używany jako klucz funkcji sortowania.
Spójrzmy na poniższy przykład wykorzystujący wyrażenie lambda:
Python kod:
base_list = [('Alto', 2020, 500), ('MSFT', 2022, 300), ('Guru99', 2019, 1070)] base_list.sort(key=lambda base_list:base_list[2],reverse=True) print("The change in base list is as follows",base_list)
Wyjście:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Wyjaśnienie:
- Wyrażenie lambda pomaga posortować elementy krotki od najwyższej do najniższej, przy czym klucz jest drugim elementem krotki.
- Program sprawdzi największą wartość drugiego elementu krotki.
Sortowanie elementów listy przy użyciu parametru Len jako klucza
Len to wbudowana funkcja, która określa długość elementu. Określona długość może zostać wykorzystana do indeksowania w funkcji sortowania. W tym celu przypisujemy Len do Python parametr kluczowy funkcji sortowania.
Poniższy Python kod ilustruje sposób użycia funkcji Len z funkcją sortowania.
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len) print("The sorted list based on length:",base_list)
Wyjście:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Code Wyjaśnienie:
- Długość elementu staje się indeksem dla parametru klucza w celu uporządkowania listy w kolejności rosnącej.
- Funkcja Len szacuje długość każdego elementu znajdującego się na liście bazowej.
- Zatrzymuje najkrótszy element po lewej stronie, a największy element po prawej stronie.
- Tutaj słowa alto i java mają długość 4, które są ułożone jako pierwsze na liście, a następnie Guru99, który ma długość 6.
Przykład ten ilustruje koncepcję parametru odwrotnego w funkcji sortowania, jak pokazano poniżej:
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len,reverse=True) print("The sorted list based on length:",base_list)
Wyjście:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Sortowanie elementów listy przy użyciu funkcji zdefiniowanej przez użytkownika jako parametru kluczowego
Możesz również użyć funkcji zdefiniowanej przez użytkownika jako parametru kluczowego do sortowania listy. Oto przykład:
Python Code:
base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)
Wyjście:
The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]
Code Wyjaśnienie:
- Utworzono funkcję zdefiniowaną przez użytkownika w celu zwrócenia roku
- Parametr klucza przyjmuje jako kryterium funkcję zdefiniowaną przez użytkownika.
- Funkcja sortowania uporządkuje listę w kolejności rosnącej na podstawie wartości elementu „rok”.
Różnica między metodą sortowania a metodą sortowaną w Python
Po przeanalizowaniu powyższych przykładów, warto porównać oba narzędzia sortujące bezpośrednio. Zanim jednak podsumujemy różnice, przyjrzyjmy się składni metody Sorted.
Python Składnia:
sorted (list_name, reverse=…., key=..)
Code Wyjaśnienie:
- Funkcja sorted sortuje listę w kolejności rosnącej lub malejącej.
- Funkcja przyjmuje trzy parametry, z czego dwa są typu opcjonalnego, a jeden typu wymaganego.
- Parametr nazwa_listy jest wymagany w przypadku korzystania z metody Sorted.
- Metoda Sorted może przyjmować jako dane wejściowe dowolny typ listy iterowalnej.
- Parametry kluczowe i parametry odwrotne są parametrami opcjonalnymi w ramach metody sortowania Python.
Oto przykład użycia funkcji sortowania i sortowania w Python:
Python kod:
#Use of the Sorted method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=sorted(Base_list) print("the New list using sorted method is",New_list) #Use of the Sort method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=Base_list.sort() print("the New list using sort method is",New_list)
Wyjście:
the original list is [11, 10, 9, 8, 7, 6] the new list using the sorted method is [6, 7, 8, 9, 10, 11] the original list is [11, 10, 9, 8, 7, 6] the new list using the sort method is None
Code Wyjaśnienie:
- Oryginalna lista jest przekazywana jako wymagany parametr dla posortowanej funkcji.
- Metoda Sorted zwraca nową listę oprócz oryginalnej listy.
- Ponieważ do metody sortowanej nie są przekazywane żadne dodatkowe parametry, nowa lista jest domyślnie sortowana w kolejności rosnącej.
- Funkcja sortowania nie tworzy nowej listy.
Poniżej przedstawiono najważniejsze podobieństwa i różnice:
| Funkcja posortowana | Funkcja sortowania |
|---|---|
| Funkcja posortowana w Python to wbudowana funkcja, która przyjmuje nazwę_listy jako wymagany parametr. | Funkcja sortowania nie przyjmuje oryginalnej listy jako parametru. |
| Metoda sortowana zwraca nową listę | Funkcja sortowania nie zwraca nowej listy |
| W przypadku list iterowalnych należy używać funkcji sortowanej | W przypadku list nie iterowalnych należy używać funkcji sortowania. |
| Nie modyfikuje oryginalnej listy i pozwala zachować oryginalne dane. | Funkcja sortowania modyfikuje oryginalną funkcję i dlatego zajmuje mniej miejsca w pamięci |
Kiedy stosować metodę sortowaną lub metodę sortowania?
Weźmy przykład, który wymaga posortowania danych dotyczących wyścigów. Program wykorzystuje numer startowy i czas w sekundach potrzebny do ukończenia wyścigu.
Python kod:
from collections import namedtuple Base = namedtuple('Runner', 'bibnumber duration') blist = [] blist.append(Base('8567', 1500)) blist.append(Base('5234', 1420)) blist.append(Base('2344', 1600)) blist.append(Base('2342', 1490)) blist.append(Base('23444', 1620)) blist.append(Base('6674', 1906)) print("original list",blist) blist.sort(key=lambda x: getattr(x, 'duration')) top_five_result = blist[:5] print("Results using sort function",top_five_result) r_blist=sorted(blist,key=lambda x: getattr(x, 'duration')) top_five_result = r_blist[:5] print("Results using sorted function",top_five_result)
Wyjście:
original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)] Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)] Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]
Code Wyjaśnienie:
- Lista podstawowa jest sortowana zarówno przy użyciu funkcji sortowania, jak i funkcji sortowanej.
- Lista podstawowa zostaje utracona po zastosowaniu funkcji sortowania.
- Funkcji sortowania nie należy stosować do oryginalnego zbioru danych. Należy go stosować, gdy istnieje kopia oryginalnego zestawu danych.
- Funkcja Sorted zachowuje oryginalną listę. Nie zastępuje tego.
- To oferuje lepsze tracmożliwości i efektywne zarządzanie danymi.

