我有以下代码:
X = [[[None] * 4] * 2] * 6
for i in range(0, 6):
X[i][0][0] = i
X
结果给出:
[[[5, None, None, None], [5, None, None, None]],
[[5, None, None, None], [5, None, None, None]],
[[5, None, None, None], [5, None, None, None]],
[[5, None, None, None], [5, None, None, None]],
[[5, None, None, None], [5, None, None, None]],
[[5, None, None, None], [5, None, None, None]]]
这对我来说很奇怪,结果不应该如下吗?
[[[0, None, None, None], [0, None, None, None]],
[[1, None, None, None], [1, None, None, None]],
[[2, None, None, None], [2, None, None, None]],
[[3, None, None, None], [3, None, None, None]],
[[4, None, None, None], [4, None, None, None]],
[[5, None, None, None], [5, None, None, None]]]
我在这里想念什么?谢谢!
答案 0 :(得分:0)
a = [[]] * 2 # here initiated a list and assigned to a.
id(a[0]) >>> 4509460384
id(a[1]) >>> 4509460384
b = [[] for _ in range(2)] # here constructing a list and assigning to b.
id(b[0]) >>> 4509626808
id(b[1]) >>> 4509626880
希望这清楚!