У меня есть набор массивов, которые "перекрываются" над определенными элементами. Здесь изображен пример с участием 3 массивов символов:
array0↓
'A' ↓array2
array1→'B' 'D' 'E'
'C' 'F'
Важно то, что изменения в массивах должны уважать эту структуру. Так, например, если я изменил "B" в array0 на "X", "B" в массиве 1 также должен измениться на "X".
Мой вопрос - хороший и эффективный способ реализации этого в Python?
Есть две вещи, о которых я думал до сих пор:
Во-первых, я могу сделать класс на заказ, экземпляры которого содержат полностью отличный список, а также информацию о любых перекрытиях, которые у него есть, и применять методы обновления соответствующим образом, чтобы любые изменения в списке всегда дублировались для других списков при перекрытиях, Это, кажется, немного перегружено, хотя и включает в себя дублирование данных.
Во-вторых, я мог бы сделать это, используя такие списки:
data = [['A'], ['B'], ['C'], ['D'], ['E'], ['F']]
array0 = [data[0], data[1], data[2]]
array1 = [data[1], data[3], data[4]]
array2 = [data[4], data[5]]
for array in array0, array1, array2:
print(array)
>>> [['A'], ['B'], ['C']]
>>> [['B'], ['D'], ['E']]
>>> [['E'], ['F']]
array0[1][0] = 'X'
for array in array0, array1, array2:
print(array)
>>> [['A'], ['X'], ['C']]
>>> [['X'], ['D'], ['E']]
>>> [['E'], ['F']]
Но я чувствую, что это может быть взломанным, а не лучшим способом. Спасибо за любые предложения.