[英]Traversing a nested dict-like structure, keeping track of each path from root to leaf (Python)
[英]returning a dict-like structure from a groupby
這是基本代碼:
from my_parser import data
from itertools import groupby
from collections import Counter
def grades(date=datetime.now().strftime('%Y%m')):
this_month = self.data.key_by('GRADE').pop(date) # this gives a list of this month
monthly = dict(groupby(this_month, lambda k: make_letter(k.GRADE))) # group it by letter grade
c = [{
'month': k,
'total': len(x)
} for k,x in monthly.iteritems()]
但是,字典返回如下:
A : <itertools._grouper object at 0x1033f0c90>
C : <itertools._grouper object at 0x1033f0c50>
是否有可能讓它更像這樣返回,或者使用替代工具來執行相同的概念?
{
A : [ ... ]
B : [ ... ]
}
代替
monthly = dict(groupby(this_month, lambda k: make_letter(k.GRADE))) # group it by letter grade
嘗試
monthly = {
val:list(items)
for val,items in
groupby(this_month, lambda k: make_letter(k.GRADE))
}
編輯:您可能需要對 this_month 進行預排序,以使成績按升序排列(或至少使與給定字母對應的所有成績一起出現)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.