Розуміння функцій Python Map, Filter і Reduce
Python надає кілька функціональних інструментів програмування, які можуть спростити завдання обробки даних. Серед них функції map
, filter
і reduce
. Ці функції дозволяють виконувати операції над колекціями даних у стислій та зрозумілій формі. У цій статті розглядається кожна з цих функцій і наводяться приклади, які допоможуть вам зрозуміти, як їх ефективно використовувати.
Функція map
Функція map
застосовує задану функцію до всіх елементів у вхідному списку (або будь-якому ітеруючому) і повертає ітератор, який дає результати. Це особливо корисно для застосування трансформацій до кожного елемента колекції.
Синтаксис
map(function, iterable)
приклад
Припустімо, ви хочете звести в квадрат кожне число в списку. Для цього можна використовувати map
:
# Define a function to square a number
def square(x):
return x * x
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Apply the function to each item in the list
squared_numbers = map(square, numbers)
# Convert the result to a list and print
print(list(squared_numbers)) # Output: [1, 4, 9, 16, 25]
Функція filter
Функція filter
використовується для фільтрації елементів із ітерованого на основі функції, яка повертає True
або False
. У результат включено лише ті елементи, для яких функція повертає True
.
Синтаксис
filter(function, iterable)
приклад
Наприклад, якщо ви хочете зберегти лише парні числа зі списку, ви можете використати filter
:
# Define a function to check if a number is even
def is_even(x):
return x % 2 == 0
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Filter the list using the function
even_numbers = filter(is_even, numbers)
# Convert the result to a list and print
print(list(even_numbers)) # Output: [2, 4]
Функція reduce
Функція reduce
, яка є частиною модуля functools
, кумулятивно застосовує двійкову функцію до елементів ітерованого елемента зліва направо, щоб зменшити ітерований елемент до одного значення.
Синтаксис
from functools import reduce
reduce(function, iterable[, initializer])
приклад
Наприклад, щоб знайти добуток усіх чисел у списку, ви можете використовувати reduce
:
from functools import reduce
# Define a function to multiply two numbers
def multiply(x, y):
return x * y
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Reduce the list using the function
product = reduce(multiply, numbers)
# Print the result
print(product) # Output: 120
Висновок
Функції map
, filter
і reduce
є потужними інструментами для функціонального програмування на Python. Вони пропонують елегантні рішення для застосування перетворень, фільтрації даних і скорочення колекцій до одного значення. Освоївши ці функції, ви зможете писати більш стислий і виразний код для різноманітних завдань обробки даних.