假设我有一本每月最高和最低温度的字典:
t = {
'jan': {
'max': 21,
'min': 12
},
'feb': {
'max': 18,
'min': 15
},
'mar': {
'max': 20,
'min': 17
}
}
现在,我想知道哪个月份最max
有价值。对于此示例,我想得出此结果(因为2月21> 18,3月21> 20):
'jan': {
'max': 21,
'min': 12
}
我可以很容易地得到最大的字典是什么max()
:
>>> max(t.values(), key=lambda s: s.get('max'))
{'max': 21, 'min': 12}
但是,对我来说,获取dict的密钥也很重要,因此{'max': 21, 'min': 12}
我不仅需要完整的密钥'jan': {'max':21, 'min':12}
。
我当前使用的方法是对值进行基本循环检查:
max_dict = dict()
max_key = ''
for k, v in t.items():
if max_dict.get('max',0) <= v.get('max', 0):
max_dict = v
max_key = k
现在max_key
包含“ jan”,而max_dict
包含{'max': 21, 'min': 12}
。
但是,我猜想使用max进行某种排序可以以更直接的方式提供结果。
你可以t.items()
使用适当的键进行最大的操作:
>>> max(t.items(), key=lambda s: s[1]['max'])
('jan', {'max': 21, 'min': 12})
好,通过使用来自的元组
t.items()