我想让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)我正在寻找关于幕后发生的事情以及为什么第二个代码示例有效的解释。
发布于 2020-06-22 19:02:23
当您赋值b=a时,Python是通过引用赋值的,因此变量b只是指向与a相同的对象。您可以使用打印出对象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对象不再与以前的a相同(2858676454064)。
https://stackoverflow.com/questions/62512776
复制相似问题