簡體   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