Числа, делящиеся на заданное число
Найти в списке числа, которые делятся на заданное число без остатка, удобно с помощью встроенной функции filter() и анонимной функции lambda. Такой подход короче, чем цикл с условием.
Что нужно знать
Перед изучением примера полезно понимать:
Лямбда-функция (анонимная функция) в Python — лямбда-функции
Python: список (list) — списки
/python-programming/methods/built-in/filter/index — функция
filter()
Пример. filter + lambda
# Take a list of numbers
my_list = [12, 65, 54, 39, 102, 339, 221,]
# use anonymous function to filter
result = list(filter(lambda x: (x % 13 == 0), my_list))
# display the result
print("Numbers divisible by 13 are",result)
Вывод
Numbers divisible by 13 are [65, 39, 221]
Функция filter() принимает функцию-условие и итерируемый объект. Она оставляет только те элементы, для которых функция возвращает True. В примере условие задано лямбда-выражением lambda x: (x % 13 == 0) — оно проверяет, что остаток от деления x на 13 равен нулю. Результат filter() оборачивается в list(), чтобы получить обычный список.