Wie sortiere ich den Datentyp in Python?

8

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 ...

%Vor%

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 .

    
Claudiu 07.01.2011, 21:12
quelle

1 Antwort

11

Besuche Ссылка

Sie möchten __lt__ in Ihrer Klasse überschreiben, damit die integrierte Funktion sort so funktioniert, wie Sie es beschrieben haben.

    
Andrew Clark 07.01.2011, 21:16
quelle

Tags und Links