繁体   English   中英

Python 3 比较列表变量

[英]Python 3 comparing list variables

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

a = "1234"
b = ""
a = list(a)
b = a

当我在更改bprint(a)时, a也会发生变化。 尽管在下面的代码中,我没有遇到这个问题,这意味着我对变量b所做的任何更改, a都将保持独立。

a = "1234"
b = ""
a = list(a)
b = list(a)

我正在寻找有关幕后发生的事情以及第二个代码示例为何起作用的解释。

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

>>> a="1234"
>>> id(a)
2858676454064
>>> b=a
>>> id(b)
2858676454064

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

>>> a = list(a)
>>> id(a)
2858676458880
>>> b = list(a)
>>> id(b)
2858676458944

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM