Я должен сделать то же самое, чтобы представить данные в ListCtrl, который должен быть доступен по ключу, а не по индексу (иногда, чтобы его не нужно было искать, если я получаю произвольное значение для поиска).Если у вас есть список словарей, лучшее, что я нашел, было создать еще один словарь со ссылками на те же элементы, но доступный по ключу.Это становится моей загрузкой данных в методе:
def SetData(self, cols, data):
for idx, row in enumerate(data):
item = dict((k, v.rstrip() if hasattr(v, 'rstrip') else v) for k, v in zip(cols, row))
self.data[idx] = item
self.byid[row[0]] = item
Итак, у меня есть список словарей, доступных в self.data, а затем другой словарь в self.byid, который содержит те же элементы, но по столбцу idстолбец 0 в моих строках в этом случае).Когда мне нужно обновить, пока я получаю идентификатор, я могу позвонить self.byid[id][field] = newval
.Поскольку все в Python является указателем (ссылкой), изменение значения словаря, хранящегося в self.byid, отражается в списке словарей, хранящихся в self.data.Работает как шарм.