Python - >每个指数都有2D列表变化?

时间:2016-12-05 13:07:09

标签: python arrays matrix indexing 2d

我创建了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))

0 个答案:

没有答案