首页 新闻 会员 周边 捐助

Python字典分组题

0
悬赏园豆:30 [已解决问题] 解决于 2014-01-24 22:02

问题如下,Python字典中 按年、月 分组。

BeginMan的主页 BeginMan | 初学一级 | 园豆:34
提问于:2014-01-11 10:39
< >
分享
最佳答案
1
 1 #!/usr/bin/python python
 2 # -*-coding=utf-8-*-
 3 
 4 d = [
 5     {'year':2014L,'month':1L,'id':1},
 6     {'year':2014L,'month':2L,'id':2},
 7     {'year':2013L,'month':3L,'id':3},
 8     {'year':2014L,'month':1L,'id':4},
 9     {'year':2013L,'month':1L,'id':5}
10     ]
11 dd = {}
12 for x in d:
13     year  = str(x['year'])
14     month = str(x['month'])
15     data = {'id':x['id']}
16     if year in dd:
17         check = True
18         for y in dd[year]:
19             if month in y:
20                 check = False
21                 y[month].append(data)
22         if check:
23             dd[year].append({month:[data]})
24                 
25     else:
26         dd[year]=[{month:[data]}]
27 print dd

测试结果:

~/code/python/test $ python blog.py 
{'2014': [{'1': [{'id': 1}, {'id': 4}]}, {'2': [{'id': 2}]}], '2013': [{'3': [{'id': 3}]}, {'1': [{'id': 5}]}]}

应该ok了吧

收获园豆:30
l4wl137 | 菜鸟二级 |园豆:274 | 2014-01-11 12:43

哇,太牛了你。谢谢

BeginMan | 园豆:34 (初学一级) | 2014-01-11 12:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册