Числа, делящиеся на заданное число

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

Что нужно знать

Перед изучением примера полезно понимать:

Пример. 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(), чтобы получить обычный список.