Context
Я работаю над сценарием Python, который манипулирует статистикой, предоставляемой Google относительно установленных приложений из Play Store.
В частности, для каждого приложения я записываю количество установок в месяц в каждой стране.Учитывая, что Google предоставляет эту информацию через csv-файл с количеством строк в день для каждой страны, мне пришлось создать собственную структуру данных, в которой хранятся значения при разборе всех строк всех строк.
Пока что
Я составил словарь словарей.Ключи словаря первого уровня - месяцы (datetime
объекты).Значения - это словари, ключами которых являются страны, а значения - совокупное количество установок для соответствующей страны за соответствующий месяц.
Это дает мне словарь со структурой {Month : {Country : amount_of_installs} }
Это позволяет мне построить следующую функцию для постепенного заполнения моего словаря:
def addNewValue(dictionary, month, country, valueToAdd):
if month in dictionary:
if country in dictionary[month]:
dictionary[month][country] += valueToAdd
else:
dictionary[month][country] = valueToAdd
else:
dictionary[month] = {country: valueToAdd}
Вопрос
Хотя это рабочее решение , это похоже на серьезный неоптимальный взлом.Поэтому и ради образования мне интересно, есть ли другое, лучшее решение для такой задачи.Может быть, еще одна более оптимальная структура данных, о которой я не знаю, - существующий класс, которому удается сделать это уже, лучшим способом.
Вот и все, спасибо за ваши советы!