我有以下类型的列表:
class Ind(object):
def __init__(self,ID,mate):
self.ID=ID
self.mate=mate
population=[Ind(8,None), Ind(1,2), Ind(20,3), Ind(2,1), Ind(12,None), Ind(3,20), Ind(10,11), Ind(11,10)]
您可以将此列表群体视为所有具有ID的个体群体.他们中的一些人有一个配偶(一个人出现在同一人口或相同的名单中).配合值实际上是配偶的ID!因此,如果存在属性ID等于12且匹配等于34的Ind的实例,则列表中必须存在ID等于34且其配合等于12的个体.没有配合的个体在mateattribute中具有None .是否有意义?
我想对这个列表进行排序,以便第一个人与最后一个人交配,第二个人与倒数第二个人交配,等等……属性mateequals None的个人应该站在列表的中间.
有许多可能的输出符合我的要求.以下是上述列表中这些输出的一个示例:
population=[Ind(1,2), Ind(20,3), Ind(10,11), Ind(8,None), Ind(12,None), Ind(11,10), Ind(3,20), Ind(2,1)]