python - 从嵌套字典中获取具有最大值的键
问题描述
在此先感谢您的帮助。
我构建了以下代码(我尝试了以下代码,我在字典中使用了字典)。
import operator
character = {'eyes_color':{"blue":10,"brown":12},
'hair_color':{"black":15, "blonde":7},
'gender': {"male":16,"female":6}
}
maximun_key=max(character.items(), key=operator.itemgetter(1))[0]
如您所见,我在代码中使用了:
maximun_key=max(character.items(), key=operator.itemgetter(1))[0]
获取输出:
brown male black
即最大值,但对于每个字典。
对于这种情况,我期望输出如下:
male
我的意思是具有最大值的键。
有谁知道我该如何解决这个问题?
解决方案
您也可以使用map
and来执行此操作functools.partial
。
vmax = partial(max, key=itemgetter(1))
vmax(map(vmax, map(dict.items, character.values())))[0]
这使用 partial 使用自定义键创建可重用的 max 函数,然后只映射dict.items
到每个 sub dict,然后将 max 映射到这些结果的最大值。
>>> from operator import itemgetter
>>> from functools import partial
>>> character = {'eyes_color':{"blue":10,"brown":12}, 'hair_color':{"black":15, "blonde":7}, 'gender': {"male":16,"female":6}}
>>> vmax = partial(max, key=itemgetter(1))
>>> max(map(vmax, map(dict.items, character.values())))[0]
male
推荐阅读
- javascript - 我正在尝试将 fs 读取的数据存储在变量中。但我得到未定义的输出?
- python-3.x - Matplotlib 内存不足
- node.js - NodeJS 上传文件
- go - 如何使用 png 图像生成带有 golang 的透明 GIF?
- swift - 计算函数返回的最高 2 和 3 个值
- sas - sas 宏:如何使用宏制作多列?
- python - AWS RDS 代理错误 (postgres) - RDS 代理当前不支持命令行选项
- css - PDF 打印与表格单元格中的大文本溢出到 th
- javascript - 将焦点放在具有禁用属性的输入的输入元素上
- python - 硒找不到网络驱动程序