【发布时间】:2016-02-16 00:28:52
【问题描述】:
我在 python 中使用嵌套列表时遇到了意外行为,需要一段时间才能调试。如果一个列表是这样初始化的:
a = [[None] * 2] * 2
a
[[None, None], [None, None]]
还有一个这样初始化的列表:
b = [[None, None], [None, None]]
b
[[None, None], [None, None]]
我希望这两个列表的行为相同,但如果我这样做:
a[0][0] = 3
a
[[3, None], [3, None]]
如果我这样做:
b[0][0] = 3
b
[[3, None], [None, None]]
有人可以解释发生这种情况的原因吗?谢谢
【问题讨论】:
-
它不如调试器好,但有时将您的代码放入pythontutor.com 之类的东西中可以帮助您了解发生了什么...