Структура данных Python Array с историей - PullRequest
0 голосов
/ 15 апреля 2019

Мне недавно потребовалось хранить большие массивоподобные данные (иногда пустые, иногда индексированные по значению ключа), значения которых будут меняться с течением времени (t = 1, изменяется один элемент, t = 2, изменяется другой элемент и т. Д.). Эта история должна была быть доступной (когда-нибудь в будущем я хочу увидеть, как выглядит массив t = 2).

Простое решение состояло в том, чтобы сохранить список массивов для всех временных шагов, но это стало слишком интенсивным объемом памяти. В итоге я написал небольшой класс, который обрабатывал это, сохраняя все «элементы» данных в поле, где каждый элемент представлен списком (this_value, timestamp_for_this_value). это позволило мне воссоздать вещи для произвольных временных отметок, ища последнее изменение до некоторого времени t, но оно, безусловно, было не таким эффективным, как могло бы быть.

Существуют ли структуры данных, доступные для python, которые имеют эти свойства изначально? Или какой-то класс структуры данных, предназначенный для такого рода вещей?

1 Ответ

1 голос
/ 15 апреля 2019

Рассматривали ли вы запись файла журнала?Хорошее использование памяти будет состоять в том, чтобы массивы содержали только текущие релевантные значения, но встраивали процедуру, где оператор обновления мог бы вызывать функцию регистрации.Эта функция может записывать в текстовый файл, базу данных или какой-либо массив / словарь.Эти типы контрольных журналов довольно распространены в мире баз данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...