Как получить максимальное значение из dict в python с несколькими элементами - PullRequest
1 голос
/ 09 марта 2019

Мне трудно найти имя элемента со значением MAx:

Вот пример Json:

    {  
   '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'
      }
   ]
}

Результат, который я хочу вернуть, является tagName "Dog", так как 0,8849932 является значением максимальной вероятности

Любой

Спасибо

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Вы можете использовать функцию max с ключевой функцией, которая возвращает значение клавиши probability, и получить значение по клавише tagName из возвращаемого значения функции max после этого:

from operator import itemgetter
max(d['predictions'], key=itemgetter('probability'))['tagName']
0 голосов
/ 09 марта 2019

Обычно я делаю это, сначала сортируя список объектов, а затем выбирая первый элемент отсортированного списка.В этом случае вы должны сделать:

predictions = dict['predictions']
sorted_list = sorted( predictions, key = lambda i: i['probability'],reverse=True)
print ( sorted_list[0])
...