【发布时间】:2014-12-31 22:49:17
【问题描述】:
我正在尝试修改列表列表:
list = [['0', '0', '0', '0', '0', '0'], ['0', '0', '0', '0', '0', '0'], ['0', '0', '0', '0', '0', '0'], ['0', '0', '0', '0', '0', '0'], ['0', '0', '0', '0', '0', '0']]
特别是当我分配list[0][1]='X' 时,list 现在是:
[['0', 'X', '0', '0', '0', '0'], ['0', 'X', '0', '0', '0', '0'], ['0', 'X', '0', '0', '0', '0'], ['0', 'X', '0', '0', '0', '0'], ['0', 'X', '0', '0', '0', '0']]
它不只是重新分配第一个子列表的第二个元素,而是重新分配每个子列表的第一个元素。我不明白为什么会这样。有人知道吗?
【问题讨论】:
-
这是因为您创建
list的方式。请说明你是如何做到的。 -
因为您的
list包含对同一个其他列表的多个引用。 -
这是关于 SO 的几十个问题的重复(我正在寻找最好的一个),以及 an entry in the official Python FAQ。
标签: python list variable-assignment