【问题标题】:Why we have messed up values when we use enumerate to copy values from one array to another? [duplicate]当我们使用 enumerate 将值从一个数组复制到另一个数组时,为什么会弄乱值? [复制]
【发布时间】:2020-05-01 13:57:25
【问题描述】:

这是我的代码,cmets 表示打印函数的输出:

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

如果我删除最后一个 for 指令,我们可以检索正确的值。但是,如果我们进行维护,它会以某种方式与我原来的数组混淆。为什么会发生这种情况,在这种情况下有什么好的做法?

【问题讨论】:

  • rotArraya 是同一个列表。你没有复制它,你只是为同一个对象设置了另一个变量。
  • d 是干什么用的?
  • @schwobaseggl,它是一个旋转数组的变量,我将在修复第一部分时使用

标签: python arrays python-3.x list enumerate


【解决方案1】:

rotArray指的是a,因此修改它就修改了a

你可以这样做:

rotArray = a.copy()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-28
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 2016-04-10
    相关资源
    最近更新 更多