如何在字典中找到具有最高值的键?

问题描述 投票:-1回答:2

我有一个字典。

示例:

scores[i][subentity_type] = the_score

看起来像这样:

scores = {0:{'SD':1,'ED':2},1:{'SD':0.5,'ED':3}}

所以我想返回一个函数

'SD' --> 0
'ED' --> 1

对于每个subentity_type,我想找到得分最高的键i。你有一个想法,如果有python函数可以提供此功能?谢谢!

python dictionary max
2个回答
0
投票

max()方法可以接受数组并确定最大值。

您可以使用mydict.values()将字典的值转换为列表,也可以将其作为生成器v for v in mydict.values()

但是,您有口头决定。您可以使用for dictofdict in mydict.values()

遍历它

->结果代码:

>>> mydict={'a': {'aa': 3, 'ab':7},
...         'b': {'ba': 5, 'bb':9}}
>>> [v for dictofdict in mydict.values() for v in dictofdict.values()]
[3, 7, 5, 9]
>>> max([v for dictofdict in mydict.values() for v in dictofdict.values()])
9

获得最高价值的字典。


0
投票

由于您尚未真正解释最终输出的样子,但我认为您可以根据值对dict项目进行排序,并获得具有最高价值的钥匙。以锡的答案为例

mydict={'a': {'aa': 3, 'ab':7},
        'b': {'ba': 5, 'bb':9}}

new_dict ={}

for k in mydict.keys():
    new_dict[k] = sorted(mydict[k].items(), key= lambda v:-v[1])[0][0] 

#new_dict = {'a':'ab','b':'bb'}

© www.soinside.com 2019 - 2024. All rights reserved.