Heim  >  Artikel  >  Backend-Entwicklung  >  Python implementiert die Sortierung benutzerdefinierter Klassenobjekte (mithilfe von attrgetter)

Python implementiert die Sortierung benutzerdefinierter Klassenobjekte (mithilfe von attrgetter)

不言
不言nach vorne
2018-10-20 14:50:032426Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen