How to get the item with max date value in a python dictionary?
在
1 2 3 | from datetime import datetime a = {"ID":3,"CITY":"ATLANTIS","FOUNDATION":datetime(2014,10,12),"COLLAPSE":datetime(2010,10,12),"REGENERATE":datetime(2011,10,12)} |
你会如何get the which has the value in this dictionary(oldest日期在这家
如果您想要最早的日期,那么您需要使用
您需要使用可在此处调用的自定义
1 2 3 4 | from datetime import datetime min(a.iteritems(), key=lambda i: i[1] if isinstance(i[1], datetime) else datetime.max) |
这将返回键和值。
要仅获取密钥,请使用:
1 | min(a, key=lambda k: a[k] if isinstance(a[k], datetime) else datetime.max) |
号
就价值而言:
1 2 | min(a.itervalues(), key=lambda v: v if isinstance(v, datetime) else datetime.max) |
在所有情况下,只有获得要比较的值的确切语法不同。
演示:
1 2 3 4 5 6 7 8 9 10 | >>> from datetime import datetime >>> a = {"ID":3,"CITY":"ATLANTIS","FOUNDATION":datetime(2014,10,12),"COLLAPSE":datetime(2010,10,12),"REGENERATE":datetime(2011,10,12)} >>> min(a.iteritems(), ... key=lambda i: i[1] if isinstance(i[1], datetime) else datetime.max) ('COLLAPSE', datetime.datetime(2010, 10, 12, 0, 0)) >>> min(a, key=lambda k: a[k] if isinstance(a[k], datetime) else datetime.max) 'COLLAPSE' >>> min(a.itervalues(), ... key=lambda v: v if isinstance(v, datetime) else datetime.max) datetime.datetime(2010, 10, 12, 0, 0) |
。