Ich habe eine Klasse, die etwas mit ein paar Feldern darstellt. Wenn eine Liste von Instanzen dieser Klasse sortiert ist, möchte ich, dass sie in einer bestimmten Reihenfolge sortiert werden (erhalten Sie jeweils einen bestimmten Schlüssel). Ich kann einfach list.sort(key=Classname.sortKey)
und eine sortKey
-Methode definieren, aber ich würde lieber list.sort()
machen und es funktionieren lassen. Ich denke, ich kann dies tun, indem ich __cmp__
überschreibe. Was mache ich jedoch, wenn ich mit etwas vergleiche, das nicht mein Datentyp ist? Ich denke so etwas wie ...
aber das funktioniert stattdessen. Es ist mir egal, welche Reihenfolge sie in einer heterogenen Liste einnehmen. Ich würde nur 0
zurückgeben, aber dann sind Sachen wie MyClass(...) == x
immer wahr, für jede x
keine Instanz von MyClass
.
Besuche Ссылка
Sie möchten __lt__
in Ihrer Klasse überschreiben, damit die integrierte Funktion sort
so funktioniert, wie Sie es beschrieben haben.
Tags und Links python data-structures sorting