我想拥有如下功能。我尝试过很多东西,但仍然无法实现。
>>> 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]]
请帮助我实现上述目标。
我想解决的真正问题: 我正在实施min-cut算法。在这个算法中,我需要在每一步合并两个顶点。我正在尝试通过将两个顶点链接在一起来实现这一点。
答案 0 :(得分: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]]