首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3比较列表变量

Python 3比较列表变量
EN

Stack Overflow用户
提问于 2020-06-22 18:52:44
回答 1查看 89关注 0票数 0

我想让list b等于list a,然后在不影响a的情况下更改b

代码语言:javascript
复制
a = "1234"
b = ""
a = list(a)
b = a

当我在更改b之后执行print(a)时,a也会更改。虽然在下面的代码中,我没有得到这个问题,这意味着无论我对变量b做了什么更改,a都将保持独立。

代码语言:javascript
复制
a = "1234"
b = ""
a = list(a)
b = list(a)

我正在寻找关于幕后发生的事情以及为什么第二个代码示例有效的解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-22 19:02:23

当您赋值b=a时,Python是通过引用赋值的,因此变量b只是指向与a相同的对象。您可以使用打印出对象ID的id()方法来确认这一点:

代码语言:javascript
复制
>>> a="1234"
>>> id(a)
2858676454064
>>> b=a
>>> id(b)
2858676454064

执行b = list(a)时,list()方法将返回一个新列表。

代码语言:javascript
复制
>>> a = list(a)
>>> id(a)
2858676458880
>>> b = list(a)
>>> id(b)
2858676458944

a = list(a)之后,a对象不再与以前的a相同(2858676454064)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62512776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档