通过分配传递:Python

我想了解以下代码变体:

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对象的引用?

我希望有人能为我消除这种困惑,如果我做错了,请改正我的想法。 谢谢。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...