リストがあります:
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