我只是覺得我會記下這個,現在我已經看到了它 - 這將是很高興得到這種行爲的確認;我確實看到了How do I pass a variable by reference?,但我不確定在這種情況下如何解釋它。在Python的另一個列表中 - 通過引用存儲一個列表的元素?
比方說,我們有這兩個數組/列表:
a = [1, 2, 3, 4]
b = [-1, a, -100, a[2], -1]
解釋器最初將其視爲:
>>> print(a)
[1, 2, 3, 4]
>>> print(b)
[-1, [1, 2, 3, 4], -100, 3, -1]
現在,讓我們改變a[2]
,看看會發生什麼:
>>> print(a)
[1, 2, 55, 4]
>>> print(b)
[-1, [1, 2, 55, 4], -100, 3, -1]
因此,無論列表b
有沒有引用lista
,value has been updated - but b
initialized with(from?)element from list a
,Python似乎在初始化時擴展了這個值,因此按值存儲了元素(而不是參考),所以它的價值顯然不會更新。
基本上,我找到了一個用例,它可以很方便地定義例如b = [-1 a[2] -1]
,然後更新a[2]
,並且能夠在得到(在這種情況下)b[1]
的值時計算出a[2]
的最新值。有沒有辦法在Python中做到這一點,而不必做b = [-1 a -1]
,然後閱讀b[1][2]
(我想通過使用b[1]
得到a[2]
的值)?