Für das Sortieren von Elementen einer Liste steht die Built-in-Methode list.sort()
zur Verfügung. Dabei wird keine neue Liste erzeugt, sondern es werden die Elemente in der Liste sortiert.
>>> my_list = [7, 9, 8, 1, 4, 3, 6]
>>> my_list.sort()
>>> my_list
[1, 3, 4, 6, 7, 8, 9]
Des Weiteren gibt es die Built-in-Funktion sorted()
. Im Gegensatz zur Methode list.sort()
wird hierbei eine neue Liste erzeugt. Die Funktion sorted()
kann außerdem nicht nur auf Listen, sondern auch auf andere iterierbare Objekte angewendet werden.
>>> my_list = [7, 9, 8, 1, 4, 3, 6]
>>> my_sorted_list = sorted(my_list)
>>> my_sorted_list
[1, 3, 4, 6, 7, 8, 9]
Es können Parameter verwendet werden. So wird mit. reverse=True
die Liste absteigend sortiert:
>>> my_list = [7, 9, 8, 1, 4, 3, 6]
>>> my_list.sort(reverse=True)
>>> my_list
[9, 8, 7, 6, 4, 3, 1]
Dies funktioniert auch mit sorted()
:
>>> my_list = [7, 9, 8, 1, 4, 3, 6]
>>> my_sorted_list = sorted(my_list, reverse=True)
>>> my_sorted_list
[9, 8, 7, 6, 4, 3, 1]
Der key
-Parameter kann dazu verwendet werden, eine Sortierung von komplexeren Objekten durchzuführen, wie nachfolgendes Beispiel anhand der Klasse Employee
zeigt. Ziel ist es ein Sortierung anhand des Alters durchzuführen:
#!/usr/bin/env python3
from operator import attrgetter
class Employee:
def __init__(self, name: str, age: int) -> None:
self.name = name
self.age = age
def __repr__(self) -> str:
return repr((self.name, self.age))
employee1 = Employee("Jenny", 56)
employee2 = Employee("Kendra", 43)
employee3 = Employee("Tim", 55)
employee_list = [employee1, employee2, employee3]
sorted_employee_list = sorted(employee_list, key=attrgetter("age"))
for i in sorted_employee_list:
print(i)
Als Ergebnis erhält man eine eine Liste mit den nach dem Alter sortierten Arbeitnehmern:
('Kendra', 43)
('Tim', 55)
('Jenny', 56)
Mit reverse=True
wäre wieder eine absteigende Sortierung möglich:
sorted_employee_list = sorted(employee_list, key=attrgetter("age"), reverse=True)
Als Ergebnis erhält man also folgende Ausgabe:
('Jenny', 56)
('Tim', 55)
('Kendra', 43)
Für weitere Informationen zu diesem Thema empfiehlt es sich, einen Blick in die entsprechende Python-Dokumentation zu werfen.
Zuletzt aktualisiert am 26. Februar 2024