我创建两个相同的零列表。但是,当列表分配给相同的值时,结果是不同的。这是我的代码和结果。
代码:
m1 = [[0] * 4] * 4
m2 = [[0 for j in range(4)] for i in range(4)]
m1[0][1] = 1
m2[0][1] = 1
print('m1:', m1)
print('m2:', m2)
结果:
m1: [[0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0]]
m2: [[0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
或者这两个列表不是“相同的”?任何帮助,将不胜感激。
答案 0 :(得分:0)
在m1
中,您引用了同一[[0] * 4]
4次。基本上,您正在这样做:
x = [0, 0, 0, 0]
m1 = [x, x, x, x]
x[1] = 1
导致x为[0 1 0 0]
并在m1