python - 如何获取字典中特定键最大的字典?
问题描述
假设我有一本字典,每个月的最高和最低温度:
t = {
'jan': {
'max': 21,
'min': 12
},
'feb': {
'max': 18,
'min': 15
},
'mar': {
'max': 20,
'min': 17
}
}
现在我想知道哪个月的max
价值最大。对于这个例子,我想得到这个 dict 结果(因为 21 > 18 在二月和 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 :
>>> max(t.items(), key=lambda s: s[1]['max'])
('jan', {'max': 21, 'min': 12})
推荐阅读
- algorithm - 这个算法问题的研究领域是什么?
- javascript - 如何从堆中删除未安装的组件?
- permalinks - 如何使用带有普通永久链接的 Woocommerce REST API?
- asp.net-mvc - IdentityServer4 用户管理与单独的 MVC 客户端 (AspNetIdentity)
- flutter - 流未在另一个流侦听功能中更新
- c# - '在 Visual Studio 2019 中找不到本地数据库选项'
- spring - 将对象列表分页到 Angular 7
- jsonschema - api-blueprint 没有正确显示嵌套的“一个”属性
- string - 将字符串表达式转换为实际工作实例表达式
- javascript - 如何使 svg 元素围绕 svg 路径移动?