#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"])