为了账号安全,请及时绑定邮箱和手机立即绑定

自定义数据结构:具有累积值的字典字典

自定义数据结构:具有累积值的字典字典

动漫人物 2021-06-08 13:34:45
语境我正在编写一个 python 脚本,该脚本处理 Google 提供的与 Play 商店中安装的应用程序相关的统计数据。特别是,我正在记录每个应用程序每月每个国家/地区的安装量。鉴于谷歌通过 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}问题虽然这是一个可行的解决方案,但感觉像是一个严重的非最佳黑客。因此,为了教育起见,我想知道是否有另一个更好的解决方案来完成这样的任务。也许另一个我不知道的更优化的数据结构,一个现有的类已经设法以更好的方式做到这一点。就是这样,谢谢你的建议!
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

您可以使用嵌套的defaultdict:


from collections import defaultdict as dd


dictionary = dd(lambda: dd(int))

如果您将所述数据结构传递给您的函数,则该函数可以简单地为:


def addNewValue(dictionary, month, country, valueToAdd):

    dictionary[month][country] += valueToAdd


查看完整回答
反对 回复 2021-06-16
  • 1 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信