我有一个清单:
k = [1,2,3,4,5]
现在我希望将这个列表的 3 个排列列在另一个列表中,但是当我这样做时:
x = []
i = 0
while i < 3:
random.shuffle(k)
x.append(k)
i += 1
我最终得到了 x 中 k 的 3 倍相同排列,如下所示:
x = [[1,3,5,2,4], [1,3,5,2,4], [1,3,5,2,4]]
而不是我想要的,是这样的:
x = [[1,5,4,2,3], [1,3,5,2,4], [5,3,4,1,2]]
请注意,由于收集 k 中的数据以将 k 放入循环中的方式,这是不可能的,因为我知道这可以解决问题。真正的代码是这样的:
def create_random_chromosomes(genes):
temp_chromosomes = []
chromosomes = []
i = 0
while i < 2000:
print(genes)
random.shuffle(genes)
temp_chromosomes.append(genes)
i += 1
print(temp_chromosomes)
for element in temp_chromosomes:
if element not in chromosomes:
chromosomes.append(element)
return chromosomes