当我们使用枚举将值从一个数组复制到另一个数组时,为什么我们弄乱了值?

Why we have messed up values when we use enumerate to copy values from one array to another?

这是我的代码,带有说明打印函数输出的注释:

def rotLeft(a, d):
    rotArray = a
    arraySize = len(a)

    print(a)#[1, 2, 3, 4, 5]

    for index, item in enumerate(a):
        print(index) # 0 1 2 3 4
        print(item) # 1 1 1 1 1
        rotArray[(index + 1) % arraySize] = item

    return rotArray

如果我删除最后一条指令,我们可以检索到正确的值。但是如果我们维护,它确实会以某种方式弄乱我原来的数组。为什么会发生这种情况,这种情况下的最佳做法是什么?

rotArray 指的是 a,因此修改它会修改 a.

你可以这样做:

rotArray = a.copy()