代码如下所示:
s = [[]] *4
s[0].append(1)
print(s)
它给了我输出:
[[1],[1],[1],[1]]
但是我想要这样的输出:
[[1],[],[],[],[]]
我该如何实现?
答案 0 :(得分:6)
您不能使用['a', 'b', 'c']
创建四个列表。在这种情况下,您仅创建一个列表和指向该列表的四个引用。
因此,您应该使用[[]] * 4
。
答案 1 :(得分:1)
Sraw的回复中只是一个附加信息:
>>> t = [[]] * 4
>>> t
[[], [], [], []]
>>> id(t[0]) == id(t[1]) == id(t[2]) == id(t[3])
True
>>> l = [[], []]
>>> id(l[0]) == id(l[1])
False
您对同一列表有4个引用。这就是为什么在其他任何引用中添加元素的原因。