<分区> 分区>
Possible Duplicate:
Python list problem
我尝试在 python 中初始化一个矩阵。 首先我这样做了:
>>> M=[[0]*4]*4
但这是我的问题,当我更改第一行时,每一行都在更改:
>>> M
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>> M[1][1]=1
>>> M
[[0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0]]
所以我是这样做的:
>>> M= [ [ 0 for i in range(4) ] for j in range(4) ]
ut 工作正常:
>>> M
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>> M[1][1]=1
>>> M
[[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
我的问题是:
这两个表达式的真正含义是什么?为什么第一个会这样?
在此先感谢您的帮助。
