#python #data-structures
#python #структуры данных
Вопрос:
Требования:
- Существует переменная, например, related_to_dict = 10
- Построение пары данных ключ-значение, например, special_dict = {0 : ref_related_to_dict}
- Когда переменная related_to_dict изменилась, значение special_dict[0] также изменилось на значение related_to_dict соответственно.
- Когда значение 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, тогда это будет проще.