Напишите lambda
выражение для фильтрации чисел с чётной суммой цифр.
Примечание
В решении не должно быть ничего, кроме выражения.
Пример
Ввод
print(*filter(<ваше выражение>, (1, 2, 3, 4, 5)))
Вывод
2 4
Ввод
print(*filter(<ваше выражение>, (32, 64, 128, 256, 512)))
Вывод
64 512
Решение
Нам нужно придумать функцию для проверки суммы цифр числа.
Код проверки мог бы выглядеть так:
Python
def f(num):
return sum(int(digit) for digit in str(num))
Остается свернуть его в лямбда-функцию:
Посмотреть код
Решение
Python
lambda c: (sum(int(x) for x in str(c)) % 2 == 0)
В коде небольшая ошибка. В самом конце не закрыта скобка
Спасибо, что обратили внимание
Как вариант можно так, даже чуть быстрее получается чем в решении:
многие задачи из курса можно решать куда более продвинуто.
публикуя ответы я не ставлю перед собой целью показать самый эффективный способ решения, я ставлю перед собой целью показать как устроены алгоритмы и как это все взаимосвязано.
в этом смысле разобраться с тем как работает “ручная” реализация куда полезнее использования функции map, тем более в сочетании с list который в свою очередь работает с str.
в других языках программирования, эту задачу можно было бы решить красиво и по-другому, через подсчет количества нечетных цифр, например. если их количество нечетное, то и сумма будет нечетная
или даже, что еще красивее алгоритмически, просто считать число изначально четным и при нахождении нечетной цифры инвертировать состояние четности числа
но в случае с лямбда функциями это все приводит к более громоздким решениям.