Python fonction min avec une liste d'objets
Comment pouvez utiliser le key
argument pour le min
fonction pour comparer une liste d'objets de 1 attribut?
Exemple
class SpecialNumber:
def __init__(self, i):
self.number = i
li = [SpecialNumber(1), SpecialNumber(3), SpecialNumber(2)]
Vous devez vous connecter pour publier un commentaire.
http://docs.python.org/library/operator.html#operator.attrgetter
Exemple de session interactive:
operator.attrgetter
fonction plus rapide que d'utiliser une fonction lambda?C'est:
vous avez besoin d'une fonction qui accepte un
SpecialNumber
et retourne son élément.SpecialNumber
classe?SpecialNumber
objet par défaut. D'obtenir le plus petit élément, il suffit d'exécuter:min(li, key=lambda x: x.number).number
Je le ferais en substituant
__cmp__
la getattr version est plus rapide