Python带有附件的重复空列表问题

问题描述 投票:2回答:2

以下代码使我感到惊讶。

alist = [[]] * 4

alist[0].append(100)

我希望alist是

[[100],[],[],[]]

但事实证明是

[[100],[100],[100],[100]]

有人知道为什么python这样工作吗?谢谢。

python list append empty-list
2个回答
1
投票

在此行alist = [[]] * 4上创建一个内部列表和对同一列表的4个引用,要解决此问题,可以使用:

alist = [[] for _ in range(4)]

0
投票
alist1 = [[] for _ in range(4)]
alist1[0] = 100
print(alist1)
© www.soinside.com 2019 - 2024. All rights reserved.