Der Inhalt dieses Artikels befasst sich mit der Python-Implementierung zum Sortieren benutzerdefinierter Klassenobjekte (mithilfe von attrgetter). Ich hoffe, dass er für Sie hilfreich ist.
1. Anforderungen
Sortieren Sie die Liste der benutzerdefinierten Klassen.2. Lösung
Die integrierte Funktion sorted() akzeptiert einen Parameterschlüssel, der zum Übergeben eines aufrufbaren Objekts verwendet wird, und das aufrufbare Objekt gibt die bestimmten Werte in einem zurück Die Objekte werden sortiert und sorted verwendet diese Werte, um die Objekte zu vergleichen.
Instanz:
from operator import attrgetter class User: def __init__(self,userId): self.userId=userId def __repr__(self): return 'User({})'.format(self.userId) users=[User(40),User(20),User(30)] print(users) #方法1 print(sorted(users,key=lambda u:u.userId)) #方法2 print(sorted(users,key=attrgetter('userId')))
Laufendes Ergebnis:
[User(40), User(20), User(30)] [User(20), User(30), User(40)] [User(20), User(30), User(40)]
attrgetter ist normalerweise etwas schneller. Die obige Zählung gilt auch für die Funktionen min() und max().
Das obige ist der detaillierte Inhalt vonPython implementiert die Sortierung benutzerdefinierter Klassenobjekte (mithilfe von attrgetter). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!