小编lit*_*urt的帖子

为什么foo.append(bar)会影响列表列表中的所有元素?

我创建了一个列表列表,并希望将项目附加到各个列表,但是当我尝试附加到其中一个列表(a[0].append(2))时,该项目将添加到所有列表中.

a = []
b = [1]

a.append(b)
a.append(b)

a[0].append(2)
a[1].append(3)
print(a)
Run Code Online (Sandbox Code Playgroud)

得到: [[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)
Run Code Online (Sandbox Code Playgroud)

得到: [[1, 2], [1, 3]]

但为什么?结果应该不同是不直观的.我知道这与多个对同一列表的引用有关,但我不知道发生了什么.

python list append

11
推荐指数
1
解决办法
3872
查看次数

标签 统计

append ×1

list ×1

python ×1