è possibile ordinare una vasta gamma di myclass
utilizzando l'argomento key
alla funzione sorted
:Python: ordina la classe personalizzata senza utilizzare l'argomento `key`?
sortedlist = sorted(myclasses, key=lambda obj: obj.myproperty)
C'è un modo per definire un ordinamento naturale per la nostra classe? Forse un metodo magico in modo che non dobbiamo passare ogni volta una chiave?
esempio,
class myclass:
def __init__(self,a,b):
self.key1 = a
self.key2 = b
def __sortkey__(self):
return self.key2
O sarà naturalmente funzionerà se definiamo __le__
forse?
Ah. Bello! Impossibile trovarlo sotto http://docs.python.org/library/functions.html#sorted – mpen
Nota che '__cmp__' non funziona in Python 3 – samfrances