Ordenar instancias comparando diversos atributos
Víctor
vitojph en gmail.com
Vie Dic 21 13:36:21 CET 2007
¡Hola a todos!
Necesito ordenar una lista de instancias de la misma clase comparando
diversos atributos. Os simplifico el problema:
>>> class Persona(object):
... def __init__(self, edad=None, altura=None, peso=None):
... self.edad = edad
... self.altura = altura
... self.peso = peso
...
>>> personas = []
>>> personas.append( Persona(edad=1, altura=50, peso=4500) )
>>> personas.append( Persona(edad=10, altura=135, peso=45000) )
>>> personas.append( Persona(edad=10, altura=136, peso=42000) )
>>> personas.append( Persona(edad=10, altura=136, peso=46000) )
En primer lugar, me gustaría ordenar a la gente por edad. En caso de
que la edad coincida, las ordeno por altura y en último caso, por
peso. ¿Cómo puedo implementarlo? Hasta el momento, sólo sé como
ordenar comparando la edad.
>>> def compara(p1, p2):
... if p1.edad < p2.edad: return 1
... elif p1.edad == p2.edad: return 0
... else: return -1
¿Dónde defino el resto de comparaciones? ¿En la misma función o en
funciones separadas? Gracias de antemano y un saludo.
--
Víctor Peinado | NLP & IR Group - UNED | http://nlp.uned.es/~victor
Tel (+34) 91 398 8106
Skype/GTalk: vitojph
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es