【发布时间】:2016-10-17 05:30:31
【问题描述】:
对于如何订购这个由嵌套的 defaultdicts 组成的列表时遇到了麻烦。我可以通过“注册”键和“类”值进行排序;
sorted(dict1.items(), key=itemgetter(1), reverse=True)
生产的;
[('registration', {'count': 11, 'classes': Counter({'class1': 5, 'class2': 5, 'class3': 1}), 'date': defaultdict(<function date_record at 0x7fc173646500>, {datetime.date(2016, 6, 7): {'count': 1, 'hour': Counter({16: 1})}, datetime.date(2016, 6, 6): {'count': 10, 'hour': Counter({16: 5, 14: 2, 8: 1, 10: 1, 12: 1})}})})]
但是现在我尝试按嵌套默认字典的“日期”排序。我试图按时间顺序(从 - 到)按日期排序,然后最后按时间顺序排序“小时”计数器()(供参考;8 = 上午 8 点,16 = 下午 4 点)。
所以上面的defaultdict应该是这样的;
[('registration', {'count': 11, 'classes': Counter({'class1': 5, 'class2': 5, 'class3': 1}), 'date': defaultdict(<function date_record at 0x7fc173646500>, {datetime.date(2016, 6, 6): {'count': 10, 'hour': Counter({16: 5, 14: 2, 12: 1, 10: 1, 8: 1})}, datetime.date(2016, 6, 7): {'count': 1, 'hour': Counter({16: 1, 14: 4})}})})]
我只是在弄清楚如何访问 defaultdict 时遇到了麻烦。关于如何在排序中访问它的任何指导?
【问题讨论】:
标签: python sorting dictionary nested defaultdict