Python Lijst sort() met voorbeelden
โก Slimme samenvatting
Python De functie `list sort()` rangschikt de elementen van een lijst op hun plaats, standaard oplopend of aflopend via de parameter `reverse`. Een optionele functie `key` sorteert op basis van aangepaste criteria zoals lengte, tuple-velden of door de gebruiker gedefinieerde functies.

Waar zit de sort() methode in Python?
De sort()-functie in Python Deze functie helpt bij het sorteren van een lijst in oplopende of aflopende volgorde. Het kan worden gebruikt voor het sorteren van numerieke lijsten, tuples en tekenreeksen. Het creรซert geen aparte lijst, maar wijzigt of sorteert de originele lijst.
Syntaxis van sorteermethode in Python
De sorteerfunctie heeft de volgende syntaxis:
List.sort(key=โฆ, reverse=โฆ)
De sorteerfunctie heeft twee optionele parameters, namelijk:
- Sleutel: - Dit wordt gebruikt om een โโfunctie te sorteren op basis van een sorteercriterium.
- Reverse: โ de waarde is waar of onwaar. Als de waarde waar is, sorteert deze aangepaste functie de lijst in aflopende volgorde.
Een lijst in oplopende volgorde sorteren met behulp van de sorteermethode in Python
In Python, sorteert de sorteerfunctie standaard elke lijst in oplopende volgorde. Een lijst in oplopende volgorde heeft de laagste waarde aan de linkerkant en de hoogste waarde aan de rechterkant.
Voorbeeld:
Python code:
base_list=["Google","Reliance","Guru99","Content","Syntax"] base_list.sort() print("the base list after sorting is",base_list)
Output:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Code Uitleg:
- De bovenstaande lijst is een willekeurig gedefinieerde stringlijst.
- De sorteerfunctie van Python helpt bij het sorteren van de willekeurige lijst in oplopende volgorde, met de laagste lengte van het woord aan de linkerkant en de hoogste lengte van het woord aan de rechterkant.
Een lijst in aflopende volgorde sorteren
Met de sorteerfunctie kan een lijst ook in aflopende volgorde worden gesorteerd. Het kan worden gedefinieerd als de bestelling waarbij de lijst begint met de hoogste waarde en eindigt met de laagste waarde.
De omgekeerde parameter van de sorteerfunctie wordt toegewezen als true om een โโlijst in aflopende volgorde te sorteren.
Laten we het volgende voorbeeld eens bekijken:
Python code:
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)
Output:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Opmerking: Zorg ervoor dat de toewijzing van het woord โTrueโ aan de omgekeerde parameter begint met een hoofdletter โTโ om runtimefouten te voorkomen.
Een lijst met tupels sorteren met behulp van de sorteermethode in Python
Python tuples zijn verzamelingen van onveranderlijke elementen die een geordende volgorde volgen. Python's sorteerfunctie kan worden gebruikt om een โโlijst met tupels te sorteren met behulp van een aangepaste functie en lambda-expressie.
Een aangepaste functie kan zonder naam worden gemaakt en worden weergegeven door een lambda-expressie. De syntax voor een lambda-expressie is als volgt:
Syntax:
Lambda arguments: expression
De bovenstaande syntaxis is gelijk aan de onderstaande Python-code:
def name (arguments): return expression
Hier volgt een voorbeeld van een tuple en een aangepaste functie om te illustreren hoe een sorteerfunctie met sleutelparameters helpt bij het sorteren van de elementen in een tuple:
Python code:
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)
Output:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Code Uitleg:
- De omgekeerde parameter wordt gedefinieerd als true om de tuple in aflopende volgorde te sorteren.
- De aangepaste functie neemt het tweede element van de tuple.
- Dit wordt gebruikt als de sleutel van de sorteerfunctie.
Laten we eens kijken naar het onderstaande voorbeeld dat gebruik maakt van lambda-expressie:
Python code:
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)
Output:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Uitleg:
- De lambda-expressie helpt je om de elementen van het tupel van hoog naar laag te sorteren, met de sleutel als het tweede element van het tupel.
- Het programma controleert de hoogste waarde van het tweede element van de tuple.
Lijstitems sorteren met Len als sleutelparameter
`len` is een ingebouwde functie die de lengte van een item bepaalt. De vastgestelde lengte kan worden gebruikt voor de indexering in de sorteerfunctie. Om dit te doen, kennen we `len` toe aan de functie. Python de belangrijkste parameter van de sorteerfunctie.
De volgende Python code illustreert hoe u de Len-functie gebruikt met de sorteerfunctie.
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len) print("The sorted list based on length:",base_list)
Output:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Code Uitleg:
- De lengte van het element wordt een index voor de sleutelparameter om de lijst in oplopende volgorde te rangschikken.
- De Len-functie schat de lengte van elk element in de basislijst.
- Het houdt het kortste element aan de linkerkant en het grootste element aan de rechterkant.
- Hier hebben de woorden alto en java een lengte van 4, die als eerste in de lijst staan, gevolgd door Guru99, wat een lengte van 6 heeft.
Dit voorbeeld illustreert het concept van de parameter 'reverse' in de sorteerfunctie, zoals hieronder weergegeven:
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)
Output:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Sorteren van lijstitems met behulp van een door de gebruiker gedefinieerde functie als sleutelparameter
Je kunt ook een door de gebruiker gedefinieerde functie als sleutelparameter gebruiken om een โโlijst te sorteren. Hier is een voorbeeld:
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)
Output:
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 Uitleg:
- Er wordt een door de gebruiker gedefinieerde functie gemaakt om het jaar terug te geven
- De sleutelparameter neemt een door de gebruiker gedefinieerde functie als criterium.
- De sorteerfunctie rangschikt de lijst in oplopende volgorde op basis van de waarde van het element โjaarโ.
Verschil tussen de sorteermethode en de gesorteerde methode in Python
Na de bovenstaande voorbeelden te hebben doorgenomen, is het nuttig om de twee sorteertools direct met elkaar te vergelijken. Voordat we de verschillen samenvatten, laten we eerst de syntaxis van de `Sorted`-methode bekijken.
Python Syntax:
sorted (list_name, reverse=โฆ., key=..)
Code Uitleg:
- De gesorteerde functie sorteert de lijst in oplopende of aflopende volgorde.
- De functie accepteert drie parameters, waarvan twee parameters van een optioneel type zijn en รฉรฉn parameter van het vereiste type.
- Parameter lijst_naam is vereist bij gebruik van de Sorted-methode.
- De Sorted-methode kan elk type itereerbare lijst als invoer gebruiken.
- Belangrijke parameters en omgekeerde parameters zijn optionele parameters onder de gesorteerde methode in Python.
Hier is een voorbeeld van het gebruik van de sorteer- en gesorteerde functie in Python:
Python code:
#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)
Output:
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 Uitleg:
- De oorspronkelijke lijst wordt doorgegeven als een vereiste parameter voor de gesorteerde functie.
- De Sorted-methode retourneert een nieuwe lijst naast de oorspronkelijke lijst.
- Omdat er geen aanvullende parameters worden doorgegeven aan de gesorteerde methode, wordt de nieuwe lijst standaard in oplopende volgorde gesorteerd.
- De sorteerfunctie maakt geen nieuwe lijst.
Hieronder volgen de belangrijkste overeenkomsten en verschillen:
| Gesorteerde functie | Sorteer functie |
|---|---|
| Gesorteerde functie in Python is een ingebouwde functie die lijstnaam als vereiste parameter gebruikt. | De sorteerfunctie neemt niet de originele lijst als parameter. |
| De gesorteerde methode retourneert een nieuwe lijst | De sorteerfunctie retourneert geen nieuwe lijst |
| De gesorteerde functie moet worden gebruikt voor iterabele lijsten | De sorteerfunctie moet worden gebruikt voor niet-itereerbare lijsten. |
| Het wijzigt de originele lijst niet en stelt ons in staat originele gegevens te behouden. | De sorteerfunctie wijzigt de oorspronkelijke functie en neemt daardoor minder geheugenruimte in beslag |
Wanneer gebruik je de gesorteerde methode of de sorteermethode?
Laten we een voorbeeld nemen waarbij racegegevens moeten worden gesorteerd. Het programma maakt gebruik van het startnummer en de tijd in seconden die nodig is om de race te voltooien.
Python code:
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)
Output:
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 Uitleg:
- De basislijst wordt gesorteerd met behulp van zowel de sorteerfunctie als de gesorteerde functie.
- De basislijst gaat verloren wanneer de sorteerfunctie wordt toegepast.
- De sorteerfunctie mag niet worden toegepast op de originele dataset. Het moet worden gebruikt als er een kopieversie van de originele dataset bestaat.
- De functie Gesorteerd behoudt de originele lijst. Het overschrijft het niet.
- Dit biedt betere tracefficiรซntie en effectief gegevensbeheer.

