[英]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.