Возврат ключа с наибольшим значением из списка словарей

#python #list #dictionary

#питон #Список #словарь

Вопрос:

В этой задаче вы сделаете то же самое, но с более сложной структурой данных. Ваша функция должна называться most_active, и у нее должен быть один параметр.

Вместо словаря ваш параметр представляет собой список словарей. У каждого словаря в списке будет ровно два ключа: «имя» и «days_active». Ваша цель, как и прежде, — вернуть имя самого активного ученика.

Часть кода, который вы написали в предыдущей задаче, будет повторно использоваться, но вам нужно будет его изменить.

Подсказка: вам НЕ нужно перебирать ключи в словарях внутри списков. Вы всегда можете просто получить доступ the_dict["name"] и the_dict["days_active"] напрямую. Ваш единственный цикл должен быть циклом по списку.

 #Add your code here!  def most_active(the_list):  max_active = (max(the_list, key=lambda x: (["days_active"])))  return max_active     

Ниже приведены несколько строк кода, которые проверят вашу функцию. Вы можете изменить значение переменной(ов), чтобы протестировать свою функцию с различными входными данными.

Если ваша функция работает правильно, сначала будет выведено:
Чопра, Дипак

 the_list = [{"name": "Joyner, David", "days_active": 14},  {"name": "Chopra, Deepak", "days_active": 22},  {"name": "Winfrey, Oprah", "days_active": 17}] print(most_active(the_list))  

В настоящее время мой код возвращает следующее: {'name': 'Joyner, David', 'days_active': 14} Я работаю над этим со вчерашнего дня и перепробовал множество «решений», но это самое близкое, что я получил. Кроме того, я искал и искал на всех мыслимых форумах и, похоже, не могу этого понять…мы ценим любую и всяческую помощь.

Комментарии:

1. max(the_list, key=lambda x: x["days_active"])

Ответ №1:

Вы можете использовать что-то вроде этого ниже,

 the_list = [{"name": "Joyner, David", "days_active": 14},  {"name": "Chopra, Deepak", "days_active": 22},  {"name": "Winfrey, Oprah", "days_active": 17}]  print(max(the_list, key=lambda k: k['days_active']))  

выход будет

 {'name': 'Chopra, Deepak', 'days_active': 22}  

редактируя его, извините, не заметил @Johnny Mopp комментарий s. В любом случае спасибо за комментарий

Комментарии:

1. Это нормально-опубликовать ответ, даже если он похож на комментарий. Ответы предпочтительнее комментариев — мне просто лень их набирать.

2. эй, @JohnnyMopp, я очень ценю твой широкий кругозор здесь !!

Ответ №2:

Это работает:

 def most_active(the_list):  return max(the_list, key=lambda x: x["days_active"])