Python列表乘法:[[…]] * 3构成3个列表,它们在修改后会相互镜像

为什么会这样呢?我不太了解:

>>> P = [ [()]*3 ]*3

>>> P

[[(), (), ()], [(), (), ()], [(), (), ()]]

>>> P[0][0]=1

>>> P

[[1, (), ()], [1, (), ()], [1, (), ()]]

回答:

你已对同一列表进行了3次引用。

>>> a = b = []

>>> a.append(42)

>>> b

[42]

你想这样做:

P = [[()] * 3 for x in range(3)]

以上是 Python列表乘法:[[…]] * 3构成3个列表,它们在修改后会相互镜像 的全部内容, 来源链接: utcz.com/qa/409947.html

回到顶部