[英]Python 3 comparing list variables
我想让 list b
等于 list a
,然后在不影响 a 的情况下更改b
。
a = "1234"
b = ""
a = list(a)
b = a
当我在更改b
后print(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.