如何在python中使用多个元素从dict中获取最大值
我很难获得具有最大值的元素名称: 以下是Json示例:如何在python中使用多个元素从dict中获取最大值,python,json,dictionary,max,Python,Json,Dictionary,Max,我很难获得具有最大值的元素名称: 以下是Json示例: { 'id':'bbb', 'project':'8', 'iteration':'34', 'created':'2019-03-09T12:58:18.0331802Z', 'predictions':[ { 'probability':0.8849932, 'tagId':'a', 'tagName':'Dog'
{
'id':'bbb',
'project':'8',
'iteration':'34',
'created':'2019-03-09T12:58:18.0331802Z',
'predictions':[
{
'probability':0.8849932,
'tagId':'a',
'tagName':'Dog'
},
{
'probability':0.11359062,
'tagId':'b',
'tagName':'Cat'
},
{
'probability':0.001416232,
'tagId':'c',
'tagName':'Bird'
}
]
}
我想返回的结果是标记名“Dog”,因为0.8849932是最大概率值
有人吗
感谢您可以将
max
函数与返回probability
键的值的键函数一起使用,然后通过键标记名从max
函数的返回值中获取值:
from operator import itemgetter
max(d['predictions'], key=itemgetter('probability'))['tagName']
我通常通过首先对对象列表进行排序,然后选择排序列表中的第一个元素来实现这一点。
在这种情况下,您将执行以下操作:
predictions = dict['predictions']
sorted_list = sorted( predictions, key = lambda i: i['probability'],reverse=True)
print ( sorted_list[0])
好好工作@blxing!谢谢好了,先生!感谢sorted()
的最复杂度是O(nlogn)
,max()
的最复杂度是O(n)
。最好使用与您使用的键相同的max
max(预测,key=lambda i:i['probability'])
yes!但对于问题中提到的小数据集来说,这并不重要。