Построение структуры данных с особыми требованиями в python

#python #data-structures

#python #структуры данных

Вопрос:

Требования:

  1. Существует переменная, например, related_to_dict = 10
  2. Построение пары данных ключ-значение, например, special_dict = {0 : ref_related_to_dict}
  3. Когда переменная related_to_dict изменилась, значение special_dict[0] также изменилось на значение related_to_dict соответственно.
  4. Когда значение special_dict[0] , например, ref_related_to_dict , изменилось, значение related_to_dict также изменилось на значение special_dict[0] соответственно.

Есть ли способ выполнить эту задачу?

Ответ №1:

Вам нужно обернуть значение в какой-то контейнер.

 class Ref:
   def __init__(self, v):
        self.val = v
  

И затем:

 related_to_dict = Ref(10)
special_dict = {0: related_to_dict}
  

Затем она работает по желанию:

 related_to_dict.val = 40
print(special_dict[0].val) # 40
  

Комментарии:

1. Но 4-е требование не выполняется, то есть, если special_dict[0] изменился, его связанная переменная должна быть изменена соответствующим образом. Так что, возможно, словарная структура данных здесь не подходит.

2. То есть вам просто нужно изменить обернутое значение : special_dict[0].val = 653 . Или другими словами, ref_related_to_dict = special_dict[0]; ref_related_to_dict.val = 653

3. Это имеет смысл, спасибо! Но если есть какой-то указатель, например, программирование на C в Python, тогда это будет проще.