我创建了28个char数组seq
,并将其复制100次到其他数组copies
。
现在每个副本我想将一个随机字符更改为另一个 - def mutate()
。
当它不在“for”时它起作用。当我尝试为每个副本(对于范围(0,99)中的i)执行此操作时,它不仅会在“i”索引处更改副本,而且会更改2D
数组中的每个副本(索引)“副本”。
为什么它会像这样工作或如何改变它?为什么它只在当前索引“i”不改变?
import random
def rand():
a = 'ABCDEFGHIJKLMANOPQRSTUWVYZ '
alphabet = list(a)
seq = []
for i in range (0, 27):
seq.append(alphabet[random.randint(0,26)])
copies = []
for i in range (0, 99):
copies.append(seq)
#print (alphabet)
print(copies[10])
s="".join(seq)
return copies, alphabet
def mutate(copies, alphabet):
print(copies[10])
for i in range(0, 99):
tmp = random.randint(0,26)
copies[i][tmp]=alphabet[random.randint(0,26)]
print(copies[10])
print(copies[10])
copies, alphabet = rand()
print(len(copies))
#print(copies[10])
#print(copies[11])
mutate(copies, alphabet)
print(len(copies))