我有以下类型的列表:
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)]
您可以将此列表population
视为拥有ID
. 他们中的一些人有一个mate
(存在于同一人群或同一列表中的个人)。mate
价值实际上是ID
伴侣的!因此,如果存在Ind
其属性等于ID
12 且mate
等于 34 的实例,则列表中必然存在一个其ID
等于 34 且其等于 12 的个体。属性中mate
没有 have 的mate
个体None
。mate
是否有意义?
我想对这个列表进行排序,以便第一个个体与最后一个个体配对,第二个个体与倒数第二个个体配对,等等......属性mate
等于的个体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)]