【发布时间】:2011-09-15 15:51:06
【问题描述】:
我创建了一个列表列表并希望将项目附加到各个列表中,但是当我尝试附加到其中一个列表 (a[0].append(2)) 时,该项目会添加到所有列表中。
a = []
b = [1]
a.append(b)
a.append(b)
a[0].append(2)
a[1].append(3)
print(a)
给:[[1, 2, 3], [1, 2, 3]]
而我期望:[[1, 2], [1, 3]]
改变我构造初始列表的方式,使 b 成为浮点数而不是列表并将括号放在 .append() 内,给了我想要的输出:
a = []
b = 1
a.append([b])
a.append([b])
a[0].append(2)
a[1].append(3)
print(a)
给:[[1, 2], [1, 3]]
但是为什么呢?结果应该不同是不直观的。我知道这与 multiple references to the same list 的存在有关,但我不知道发生在哪里。
【问题讨论】: