我创建了一个列表列表,并希望将项目附加到各个列表,但是当我尝试附加到其中一个列表(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]]
但为什么?结果应该不同是不直观的.我知道这与多个对同一列表的引用有关,但我不知道发生了什么.