![](/img/trans.png)
[英]How to find whether a string either a key or a value in a dict or in a dict of dicts
[英]how to find the key with the highest value in a dict of dicts?
我有一个字典。
例子:
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函数来提供这个吗? 谢谢!
有一个max()
方法接受一个数组并确定最大值。
您可以使用mydict.values()
将 dict 的值转换为列表,或者作为mydict.values()
中的v for v in mydict.values()
生成器v for v in mydict.values()
。
但是,您有一个字典。 您可以for dictofdict 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
获得最高值的 dict 的 dict。
由于您实际上还没有解释最终输出的样子,但我认为您可以根据值对dict
项进行排序并获得具有最高值的键。 以 Tin 的回答为例
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'}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.