Sort Python dict by datetime value
本问题已经有最佳答案,请猛点这里访问。
我有一本这样的Python字典:
1 2 3 4 5 | { 'apple': datetime.datetime(2012, 12, 20, 0, 0, tzinfo=<UTC>), 'orange': datetime.datetime(2012, 2, 4, 0, 0, tzinfo=<UTC>), 'raspberry': datetime.datetime(2013, 1, 9, 0, 0, tzinfo=<UTC>) } |
按日期时间值对字典排序的最佳方法是什么?我正在查找按从最近到最旧顺序排列键的列表输出。
您可以这样对键进行排序:
1 | sorted(dct, key=dct.get) |
请参阅"排序迷你操作"以获取有关此操作和其他排序技术的解释。
记住,问题是如何按日期时间值排序,下面是一个可能的答案:
1 2 3 4 5 | sorted(dct.items(), key=lambda p: p[1], reverse=True) => [('raspberry', datetime.datetime(2013, 1, 9, 0, 0)), ('apple', datetime.datetime(2012, 12, 20, 0, 0)), ('orange', datetime.datetime(2012, 2, 4, 0, 0))] |
如果你只对钥匙感兴趣:
1 2 3 | [k for k, v in sorted(dct.items(), key=lambda p: p[1], reverse=True)] => ['raspberry', 'apple', 'orange'] |
尝试获取字典
1 | [item[0] for item in sorted(dict.items(), key=lambda val: val[1])] |
这真的很简单,你只要做到,就像:
1 2 | from operator import itemgetter sorted(a.items(),key=itemgetter(1),reverse=True) |