Я хочу иметь такую функциональность, как показано ниже. Я много пробовал, но до сих пор не могу этого добиться.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], [1], [2] ... '') поднимет значение «ValueError: слишком много значений для распаковки». Во втором блоке вы назначаете '' str'', но результат, который вы показываете, является '' int''. – Leo