# Tecnicas de ordenacion: class Persona: def __init__(self,nombre,edad): self.nombre = nombre self.edad = edad def __cmp__(self,otra): # Comparacion por defecto: por edad return cmp(self.edad,otra.edad) def __repr__(self): return str((self.nombre,self.edad)) def __str__(self): return self lista = [Persona("Jose",16), Persona("Marta",30), Persona("Carlos",20)] # Ordenacion definida por la clase (por edad) lista.sort() print lista # Funcion que compara por nombre: def por_nombre(per1,per2): return cmp(per1.nombre,per2.nombre) # Ordenacion por nombre utilizando una función ya definida lista.sort(por_nombre) print lista # Ordenacion inversa por edad definiendo la función implícitamente lista.sort(lambda x,y:-cmp(x.edad,y.edad)) print lista