Перейти до змісту

Класичні функції вищого порядка

Розглянемо класичні функції вищого порядка, які приймають послідовність і функцію.

map()

Застосовує вказану функцію до кожного елемента послідовності. Повертає ітератор.

Приклад. Є символьний рядок, у якому числа розділено пробілами. Треба отримати список цих чисел:

>>> string = '2 4 8 15 42'
>>> numbers = map(int, string.split())
>>> list(numbers)
[2, 4, 8, 15, 42]
>>>

Функції map() ми передали функцію int і список з символьних рядків, до елементів якого і було застосовано цю функцію.

filter()

Залишає лише ті елементи послідовності, для яких задана функція повертає істинне значення. Повертає ітератор.

Приклад. "Відфільтруємо" список цілих чисел і залишимо лише ті, які більше нуля:

>>> numbers = [3, 2, -1, 0, 15, -8, -7, 3, -3, 8]
>>> positive_numbers = filter(lambda x: x > 0, numbers)
>>> list(positive_numbers)
[3, 2, 15, 3, 8]
>>>

Функції filter() ми передали анонімну функцію і список.

Back to top