我正在研究遗传算法问题。假设我有一个 Population()
类,它有一个 Individual()
列表。每个人都有一个与之相关的分数。根据他们在人群中的分数对这些人进行排序/排名的好方法是什么?例如:
class Individual(object):
rr = 100
def __init__(self):
self.score = random.randrange(self.rr)
class Population(object):
def __init__(self, size):
self.size = size
self.population = [Individual() for _ in xrange(self.size)]
pop = Population(5)
for i in xrange(pop.size):
print pop.population[i].score
是否有一种 Pythonic 的方法可以根据他们的分数对这些人进行排序?谢谢!
最佳答案
当然,使用 .sort()
方法的 key
参数:
from operator import attrgetter
pop.population.sort(key=attrgetter('score'))
使用 operator.attrgetter()
使这更容易一些,但不是必需的。
参见 Sorting Howto在 Python wiki 上获取更多提示和技巧。
关于python - 按成员在类中的属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15167684/