【发布时间】:2017-08-22 14:36:49
【问题描述】:
我正在尝试初始化表示 3x3 数组的列表列表:
import copy
m = copy.deepcopy(3*[3*[0]])
print(m)
m[1][2] = 100
print(m)
输出是:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 100], [0, 0, 100], [0, 0, 100]]
这不是我所期望的,因为每行的最后一个元素是共享的!我确实得到了我需要的结果:
m = [ copy.deepcopy(3*[0]) for i in range(3) ]
但我不明白为什么第一个(更简单的)表单不起作用。 deepcopy不应该很深吗?
【问题讨论】:
标签: python python-3.x deep-copy