以下代码使我感到惊讶。
alist = [[]] * 4
alist[0].append(100)
我希望alist是
[[100],[],[],[]]
但事实证明是
[[100],[100],[100],[100]]
有人知道为什么python这样工作吗?谢谢。
在此行alist = [[]] * 4
上创建一个内部列表和对同一列表的4个引用,要解决此问题,可以使用:
alist = [[] for _ in range(4)]
alist1 = [[] for _ in range(4)]
alist1[0] = 100
print(alist1)