参考平等 Python
Reference Equality Python
我想要如下所示的功能。试了很多东西还是不行。
>>> a, b = [1], [2]
>>> k = [a, a, b]
>>> k
[[1], [1], [2]]
现在如预期的那样,如果我更改第二个值,第一个值将自动更改。
>>> k[0][0] = 3
>>> k
[[3], [3], [2]]
您会看到更改一个值如何影响另一个值。
现在我想以某种方式 link 第三个元素与前两个元素,这样每当我更改这三个元素中的任何一个时,link 编辑到的每个元素都会发生变化。我想要以下行为:
>>> *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]]
请帮我实现以上目标。
我想解决的实际问题:
我正在实施最小切割算法。在这个算法中,我需要在每一步合并两个顶点。我正在尝试通过 link 将我想要合并的两个顶点合并在一起。
这是你想要的吗?
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]]
我想要如下所示的功能。试了很多东西还是不行。
>>> a, b = [1], [2]
>>> k = [a, a, b]
>>> k
[[1], [1], [2]]
现在如预期的那样,如果我更改第二个值,第一个值将自动更改。
>>> k[0][0] = 3
>>> k
[[3], [3], [2]]
您会看到更改一个值如何影响另一个值。
现在我想以某种方式 link 第三个元素与前两个元素,这样每当我更改这三个元素中的任何一个时,link 编辑到的每个元素都会发生变化。我想要以下行为:
>>> *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]]
请帮我实现以上目标。
我想解决的实际问题: 我正在实施最小切割算法。在这个算法中,我需要在每一步合并两个顶点。我正在尝试通过 link 将我想要合并的两个顶点合并在一起。
这是你想要的吗?
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]]