Как отсортировать коллекцию объектов по переменной, которую они все содержат? - PullRequest
1 голос
/ 23 февраля 2010

У меня есть класс с именем Individual, в котором есть переменная self.fitness. У меня есть коллекция этих отдельных экземпляров, и я хотел бы отсортировать их по их пригодности. Как это делается в Python?

1 Ответ

6 голосов
/ 23 февраля 2010
from operator import attrgetter
sorted(item_list, key=attrgetter('fitness'))

item_list может быть любым итеративным. Вот пример

>>> class C(object):
...     def __init__(self, fitness):
...         self.fitness=fitness
...     def __repr__(self):
...         return "fitness: %s"%self.fitness
... 
>>> 
>>> from operator import attrgetter
>>> L=[C(10),C(4),C(1),C(99)]
>>> sorted(L, key=attrgetter('fitness'))
[fitness: 1, fitness: 4, fitness: 10, fitness: 99]
>>> S=set(L)
>>> sorted(S, key=attrgetter('fitness'))
[fitness: 1, fitness: 4, fitness: 10, fitness: 99]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...