Почему не корректный вывод key, lambda?
Почему выводится максимальное число, кратное двум - 14?
Ведь должен вывести 100:
lst = [77, 14, 5, 9, 277, 100]
print(max(lst, key=lambda x: x % 2 == 0))
А если вместо max написать min, то вообще выведет число не кратное двум? Какая тут связь?
Ответы (1 шт):
Автор решения: Lawrence
→ Ссылка
Аргумент key в max отвечает за способ выбора наибольшего, а не за фильтрацию. Код должен выглядеть так
lst = [77, 14, 5, 9, 277, 100]
print(max(filter(lambda x: x % 2 == 0, lst)))
Твой же код находил первое чётное число. Когда ты задал аргумент key таким образом, список превратился в [False, True, False, False, False, True], и вполне логично, что первый максимум тут второй элемент, который в изначальном списке имеет значение 14.