我想理解以下代码变体:
a = [1, 2, 3]
b = a
b.append(4)
b = ['a', 'b']
print(a, b)
我的理解是,变量指的是一个对象,该对象包含内存中某个位置的a列表,现在指的是所指的同一个对象,通过该链接,我们在技术上追加了一个非 b。[1,2,3]ba
输出:[1, 2, 3, 4] ['a', 'b']
我稍微更新了代码:
a = [1, 2, 3]
b = ['a', 'b']
b = a
b.append(4)
print(a, b)
我的理解:b 现在指的是两个对象,第一个列表 ['a','b']和第二个列表(a最初指的是)[1,2,3]通过第三行b = a。
输出:[1, 2, 3, 4] [1, 2, 3, 4]
最后的代码变化:
a = [1, 2, 3]
b = ['a', 'b']
b = a
b.append(4)
a.append(10)
print(a, b)
根据我目前的理解,我虽然第 3 行的链接b = a只提供了b引用多个对象(它自己的和a's)的能力并且a应该只引用一个对象[1,2,3],所以预期的输出应该是:[1,2,3,4,10] [1,2,3,4]
实际输出:[1, 2, 3, 4, 10] [1, 2, 3, 4, 10]
那么第 3 行的这个赋值b = a是否就像一个双向链接?atob的对象也在哪里创建引用?
如果我错了,我希望有人能为我消除这种困惑并纠正我的想法。谢谢。
噜噜哒
茅侃侃
神不在的星期二
相关分类