Module (14%)
Section (81%)

Лямбды и функции filter()

Еще одна функция Python, которая может быть значительно улучшена применением лямбды, - это filter().

Она ожидает того же рода аргументы, что и map(), но делает нечто другое - она фильтрует второй аргумент, руководствуясь указаниями, вытекающими из функции, указанной в качестве первого аргумента (функция вызывается для каждого элемента списка, как в map()).

Элементы, которые возвращают True из функции, проходят фильтр - остальные отклоняются.

В примере в редакторе показана функция filter() в действии.

Примечание: мы использовали модуль random, чтобы инициализировать генератор случайных чисел (не путать с генераторами, о которых мы только что говорили) с помощью seed() и для получения пяти случайных целочисленных значений от -10 до 10 с помощью функции randint().

Затем список фильтруется, и принимаются только числа, которые четные и больше нуля.

Конечно, маловероятно, что Вы получите такие же результаты, но вот как выглядели наши:

[6, 3, 3, 2, -7] [6, 2]

output



Code

from random import seed, randint

seed()
data = [ randint(-10,10) for x in range(5) ]
filtered = list(filter(lambda x: x > 0 and x % 2 == 0, data))

print(data)
print(filtered)
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×