簡體   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