我想了解以下代码变体:
a = [1,2,3]
b = a
b.append(4)
b = ['a','b']
print(a,b)
我了解到的是变量a
指的是在内存中某个位置包含列表[1,3]
的对象,而b
现在所指的是与{{1 }}所指,通过技术上的链接,我们从技术上添加了一个not b。
输出:a
我稍微更新了代码:
[1,3,4] ['a','b']
我的理解:b现在通过第三行{{1}指两个对象,第一个列表a = [1,3]
b = ['a','b']
b = a
b.append(4)
print(a,b)
和第二个列表(['a','b']
最初指的是)a
}}。
输出:[1,3]
b = a
根据到目前为止的理解,尽管我在第3行[1,4] [1,4]
上的链接仅使a = [1,'b']
b = a
b.append(4)
a.append(10)
print(a,b)
能够引用多个对象(它是自己的和b = a
的),并且b
应该只引用一个对象a
,因此预期输出应为:a
实际输出:[1,3]
那么第3行[1,4,10] [1,4]
上的分配就像双向链接吗? [1,10]
在哪里创建对b = a
对象的引用?
我希望有人能为我消除这种困惑,如果我做错了,请改正我的想法。 谢谢。