【发布时间】:2019-10-28 13:27:56
【问题描述】:
我是 python 的新手,这让我困惑了一段时间。
我写了下面的代码:
pool = np.array([[1,1],[1,1]])
def ringDisc(data):
data_new = data
data_new[1] = 0
return data_new
print(pool)
print(ringDisc(pool))
print(pool)
我希望第一个“打印”的结果应该是[[1,1],[1,1]],第二个“打印”的结果应该是[[1,1],[0,0]],最后一个是[[1,1],[1,1]]。
但我从中得到的是[[1,1],[1,1]]; [[1,1],[0,0]]; [[1,1],[0,0]]。
谁能帮我解决这个问题并解释为什么我的代码没有按我想要的方式运行?非常感谢!
【问题讨论】:
-
对于“为什么会发生这种情况”(这不是很直观,实际上是一个非常复杂的问题):stackoverflow.com/questions/11585793/…
-
在 python 中,
pool、data、data_new都引用同一个对象。没有一个步骤可以复制。