当我们使用枚举将值从一个数组复制到另一个数组时,为什么我们弄乱了值?
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()
这是我的代码,带有说明打印函数输出的注释:
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()