Как вы указали в своем вопросе, соответствующая информация такова:
array0ptr = [0, 1, 2]
array1ptr = [1, 3, 4]
array2ptr = [4, 5]
(я добавляю суффикс ptr, потому что практически эти элементы являются указателями).Здесь элемент списка - это указатель на объекты, которые должны храниться в отдельном списке.
ol = ['A', 'B', 'C', 'D', 'E']
Реальные массивы могут быть получены во время выполнения такими функциями-членами, как
array0 = []
for i in range(len(array0ptr)):
array0.append(ol[array0ptr[i]])
ТеперьВаша точка зрения: предположим, что список объектов становится
ol = ['A', 'B', 'intruder', 'C', 'D', 'E']
Как мне автоматически отслеживать это в моих массивах ??Эти массивы должны выглядеть так:
array0ptr = [0, 1, 3]
array1ptr = [1, 4, 5]
array2ptr = [5, 6]
Я думаю, что самый простой ответ: оставьте список фиксированным !, и не допускайте вставки или изменения порядка элементов.Просто создайте другой хэш с позицией объекта.В приведенном выше случае у вас будет
sl = ['A', 'B', 'C', 'D', 'E', 'intruder']
slorder = [0, 1, 3, 4, 5, 2]
, тогда можно будет писать функции-члены, которые выводят обновленный список объектов, массив не изменится.Что может быть сложно, если вы хотите удалить объекты, но это сложно в любом случае, я боюсь.