Liste der Objekte in Python sortieren
-
Verwenden Sie die Methode
list.sort()
, um die Liste der Objekte in Python zu sortieren -
Verwenden Sie die Funktion
sorted()
, um die Liste der Objekte in Python zu sortieren
Python-Listen sind nicht homogen, wodurch sie sich von den anderen in Python bereitgestellten Datentypen unterscheiden.
Die Indizierung einer Liste beginnt mit 0 als erstem Index und erfolgt sequentiell. Alle Elemente in der Liste haben ihren festen Platz, weshalb Duplizierungen in Listen erlaubt sind.
In diesem Tutorial werden verschiedene Methoden zum Sortieren der Objektliste in Python vorgestellt.
Verwenden Sie die Methode list.sort()
, um die Liste der Objekte in Python zu sortieren
Die Methode list.sort()
sortiert alle Listenelemente auf- oder absteigend.
Es enthält zwei optionale Parameter, key
und reverse
. Der Parameter key
dient, wie der Name schon sagt, als Schlüssel für den Sortiervorgang. Mit dem Parameter reverse
wird die Sortierreihenfolge festgelegt. Ist der Wert von reverse
True
, erfolgt die Sortierung in umgekehrter/absteigender Reihenfolge.
Die Funktion funktioniert jedoch ohne die Verwendung der oben genannten optionalen Parameter einwandfrei.
Der folgende Code verwendet die Methode list.sort()
, um die Liste der Objekte in Python zu sortieren.
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return "{" + self.name + ", " + self.dept + ", " + str(self.age) + "}"
if __name__ == "__main__":
emps = [
BankEMP("Elijah", "IT", 20),
BankEMP("Nik", "Banking", 21),
BankEMP("Lucien", "Finance", 19),
]
# sort list by `name` in the natural order
emps.sort(key=lambda x: x.name)
print(emps)
# sort list by `name` in reverse order
emps.sort(key=lambda x: x.name, reverse=True)
print(emps)
Ausgabe:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
[{Nik, Banking, 21}, {Lucien, Finance, 19}, {Elijah, IT, 20}]
Um den Wert für den Parameter key
zu erzeugen, können wir operator.attrgetter()
verwenden.
attrgetter()
wird aus dem operator
-Modul importiert und wird verwendet, um ein aufrufbares Objekt zurückzugeben, das das Attribut von seinem Operanden holt.
Der folgende Code verwendet die Methode list.sort()
und operator.attrgetter()
, um die Liste der Objekte in Python zu sortieren.
from operator import attrgetter
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return "{" + self.name + ", " + self.dept + ", " + str(self.age) + "}"
if __name__ == "__main__":
emps = [
BankEMP("Elijah", "IT", 20),
BankEMP("Nik", "Banking", 21),
BankEMP("Lucien", "Finance", 19),
]
# sort list by name in the natural order using 'attrgetter()'
emps.sort(key=attrgetter("name"))
print(emps)
Ausgabe:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
Verwenden Sie die Funktion sorted()
, um die Liste der Objekte in Python zu sortieren
Python bietet eine eingebaute Funktion sorted()
, die als Alternative zur Funktion list.sort()
dienen kann.
Während list.sort()
keinen bestimmten Wert zurückgibt und Änderungen an der Originalliste vornimmt, gibt die Funktion sorted()
die sortierte Liste zurück, anstatt Änderungen an der Originalliste vorzunehmen.
Die Funktion sorted()
enthält als optionalen Parameter nur reverse
.
Der folgende Code verwendet die Funktion sorted()
, um die Liste der Objekte in Python zu sortieren.
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return "{" + self.name + ", " + self.dept + ", " + str(self.age) + "}"
if __name__ == "__main__":
emps = [
BankEMP("Elijah", "IT", 20),
BankEMP("Nik", "Banking", 21),
BankEMP("Lucien", "Finance", 19),
]
# sort list in natural order of name using sorted() function
sort1 = sorted(emps, key=lambda x: x.name)
print(sort1)
Ausgabe:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert