Zrozumienie funkcji Map, Filter i Reduce języka Python
Python udostępnia kilka narzędzi programowania funkcyjnego, które mogą uprościć zadania przetwarzania danych. Wśród nich znajdują się funkcje map
, filter
i reduce
. Funkcje te umożliwiają wykonywanie operacji na zbiorach danych w zwięzły i czytelny sposób. W tym artykule omówiono każdą z tych funkcji i podano przykłady, które pomogą zrozumieć, jak skutecznie ich używać.
Funkcja map
Funkcja map
stosuje daną funkcję do wszystkich elementów na liście wejściowej (lub dowolnej iterowalnej) i zwraca iterator, który zwraca wyniki. Jest to szczególnie przydatne do stosowania transformacji do każdego elementu w kolekcji.
Składnia
map(function, iterable)
Przykład
Załóżmy, że chcesz podciągnąć do kwadratu każdą liczbę na liście. Możesz użyć map
, aby to osiągnąć:
# 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]
Funkcja filter
Funkcja filter
służy do filtrowania elementów z obiektu iterowalnego na podstawie funkcji zwracającej True
lub False
. W wyniku uwzględniane są tylko elementy, dla których funkcja zwraca True
.
Składnia
filter(function, iterable)
Przykład
Na przykład, jeśli chcesz zachować tylko liczby parzyste z listy, możesz użyć 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]
Funkcja reduce
Funkcja reduce
, która jest częścią modułu functools
, stosuje funkcję binarną kumulatywnie do elementów obiektu iterowalnego, od lewej do prawej, w celu zredukowania obiektu iterowalnego do pojedynczej wartości.
Składnia
from functools import reduce
reduce(function, iterable[, initializer])
Przykład
Na przykład, aby znaleźć iloczyn wszystkich liczb na liście, możesz użyć 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
Wniosek
Funkcje map
, filter
i reduce
to potężne narzędzia do programowania funkcyjnego w Pythonie. Zapewniają eleganckie rozwiązania do stosowania transformacji, filtrowania danych i redukcji kolekcji do pojedynczej wartości. Opanowując te funkcje, możesz pisać bardziej zwięzły i ekspresyjny kod dla różnych zadań przetwarzania danych.