我在我的计划中遇到了问题,而且我不确定我做错了什么。首先,我创建了一个空的列表列表。例如:
>>> Lists = [[]]*12
给出:
>>> Lists
[[], [], [], [], [], [], [], [], [], [], [], []]
但是,在尝试将值附加到单个子列表时,它会将值添加到所有子列表中。例如:
>>> Lists[2].append(1)
给出:
>>> Lists
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
有没有办法只追加到一个子列表,结果如下:
>>> Lists
[[], [], [1], [], [], [], [], [], [], [], [], []]
答案 0 :(得分:19)
列表对象是可变的,因此您实际上是在列表中包含对一个列表的12个引用。使用列表推导并制作12个不同的列表:
Lists = [[] for i in range(12)]
对不起,我找不到这个问题的原始副本
答案 1 :(得分:1)
我在尝试解决拓扑排序问题时遇到了同样的问题。
试试这个:
Lists[2] = Lists[2]+[1]