[英]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.