ver - python ordenar tuplas
Ordenar una lista de instancias de clase Python (2)
Además de la solución que usted aceptó, también podría implementar el __lt__()
especial __lt__()
("menor que") en la clase. El método sort()
(y la función sorted()
) podrán comparar los objetos y, por lo tanto, ordenarlos. Sin embargo, esto funciona mejor cuando solo los ordena en este atributo.
class Foo(object):
def __init__(self, score):
self.score = score
def __lt__(self, other):
return self.score < other.score
l = [Foo(3), Foo(1), Foo(2)]
l.sort()
Esta pregunta ya tiene una respuesta aquí:
Tengo una lista de instancias de clase -
x = [<iteminstance1>,...]
entre otros atributos, la clase tiene un atributo de score
. ¿Cómo puedo ordenar los artículos en orden ascendente según este parámetro?
EDITAR : La list
en python tiene algo llamado sort
. ¿Podría usar esto aquí? ¿Cómo dirijo esta función para usar mi atributo de score
?
import operator
sorted_x = sorted(x, key=operator.attrgetter(''score''))
si desea ordenar x in situ, también puede:
x.sort(key=operator.attrgetter(''score''))