替换二维列表中的元素

时间:2017-12-17 15:09:35

标签: python

对于此代码示例:

A = [[0] * 5] * 3
B = [[0 for x in range(5)] for y in range(3)]
print A
print B

A[0][0] = 10
B[0][0] = 10

print A
print B

使用此输出:

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[[10, 0, 0, 0, 0], [10, 0, 0, 0, 0], [10, 0, 0, 0, 0]]
[[10, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

列表与它们的打印相同,为什么A [0] [0] = 10不会随着B [0] [0] = 10而改变? 我期望的结果是B的变化方式。

编辑: 我不想知道修复列表A问题的替代解决方案,因为我提供的列表B已经是一个很好的解决方案,我想知道的是"为什么"列表A执行此行为。

0 个答案:

没有答案