例如,开辟一个5*5大小的列表:
maps=[[1]*5]*5
for i in range(5):
print(maps[i])
#结果
[1, 1, 1, 1, 1]
[1, 1, 1, 1, 1]
[1, 1, 1, 1, 1]
[1, 1, 1, 1, 1]
[1, 1, 1, 1, 1]
结果如图:
[1, 1, 1, 1, 1] [1, 1, 1, 1, 1] [1, 1, 1, 1, 1] [1, 1, 1, 1, 1] [1, 1, 1, 1, 1]
但是当我尝试去修改某个值的时候,为什么其他行的值也会改变:
maps=[[1]*5]*5
for i in range(5):
print(maps[i])
maps[3][2]=155
for i in range(5):
print(maps[i])
#结果
[1, 1, 155, 1, 1]
[1, 1, 155, 1, 1]
[1, 1, 155, 1, 1]
[1, 1, 155, 1, 1]
[1, 1, 155, 1, 1]
我只想修改其中maps[3][2]的值,为什么其他行列都变了,求大佬们解释下。