繁体   English   中英

在Python 2.7中创建嵌套的字典理解

[英]Creating a nested dictionary comprehension in Python 2.7

我有一个从MySQL cursor.fetchall()返回的嵌套元组,其中包含一些结果,格式为(datetime.date,float) 我需要将它们分离成[月/年] [月的天]形式的嵌套字典-因此,我希望有一个字典(例如)阅读材料,像阅读材料一样参考[[12/2011]] [13]以获取“ 12/2011”月份第13天的读数。 这是为了生成图表,以显示覆盖多个月的每日读数。

我的困难是(我相信)我需要使用唯一的月/年标识符设置字典的第一个维度。 我目前通过以下方式获得这些列表:

list(set(["%02d/%04d" % (z[0].month, z[0].year) for z in raw]))

其中raw是从数据库返回的元组列表。

现在,我可以轻松地将其分为两个阶段进行-设置字典的第一个维度,然后再次遍历数据以设置第二个。 我想知道是否有一种可读的方式可以同时使用嵌套的字典/列表理解来同时完成两个步骤。

任何建议我都会很高兴。 谢谢。

在简洁的oneliner中完成这两个级别似乎很困难,我建议您改为使用defaultdict如下所示:

res = defaultdict(dict)
for z in raw:
    res["%02d/%04d"%(z[0].month, z[0].year)][z[0].day] = z

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM