我有一个列表:
k = [1,2,3,4,5]
现在我想把这个列表的三个排列方式列在另一个列表中,但是当我这样做时:
x = []
i = 0
while i < 3:
random.shuffle(k)
x.append(k)
i += 1
我得到了三个相同的排列k在x中,如下所示:
x = [[1,3,5,2,4], [1,3,5,2,4], [1,3,5,2,4]]
与我期望的不同,应该是这样的: ```html
与我期望的不同,应该是这样的:
``` 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
list(k)
替代k[:]
。 - Ashwini Chaudhary