簡體   English   中英

參考平等 Python

[英]Reference Equality Python

我想要一個像下面這樣的功能。 我嘗試了很多事情,但仍然無法實現。

>>> a, b = [1], [2]
>>> k = [a, a, b]
>>> k
[[1], [1], [2]]

現在正如預期的那樣,如果我更改第二個值,第一個值將自動更改。

>>> k[0][0] = 3
>>> k
[[3], [3], [2]]

您會看到更改一個值如何影響另一個值。

現在我想以某種方式將第三個元素與前兩個元素聯系起來,這樣每當我更改三個元素中的任何一個時,它所鏈接的每個元素都會發生變化。 我想有以下行為:

>>> *Do something to link k[1] or k[0] with k[2]*
>>> k[-1][0] = 4
>>> k
>>> [[4], [4], [4]]

我嘗試執行以下操作但失敗了,如下所示:

>>> b = a
>>> k
>>> [[3], [3], [2]]

請幫助我實現上述目標。

我要解決的真正問題:我正在實現最小切割算法。 在這個算法中,我需要在每一步合並兩個頂點。 我正在嘗試通過將要合並的兩個頂點鏈接在一起來做到這一點。

這是你想要的嗎?

a,b = [1],[2]
k = [a,a,b]  # store references to lists a and b
print(k)
k[0][0] = 3  # change the first cell's list's first element
print(k)     # second cell changes as well since it references same list
k[-1] = k[0] # store the first cell's reference in the last cell.  All reference the same list 'a' now.
k[1][0] = 4
print(k)

輸出:

[[1], [1], [2]]
[[3], [3], [2]]
[[4], [4], [4]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM