De functies Map, Filter en Reduce van Python begrijpen
Python biedt verschillende functionele programmeertools die dataverwerkingstaken kunnen vereenvoudigen. Hiertoe behoren de functies map
, filter
en reduce
. Met deze functies kunt u bewerkingen uitvoeren op verzamelingen gegevens op een beknopte en leesbare manier. Dit artikel onderzoekt elk van deze functies en geeft voorbeelden om u te helpen begrijpen hoe u ze effectief kunt gebruiken.
De map
-functie
De map
-functie past een gegeven functie toe op alle items in een invoerlijst (of een iterable) en retourneert een iterator die de resultaten oplevert. Dit is met name handig voor het toepassen van transformaties op elk element in een verzameling.
Syntaxis
map(function, iterable)
Voorbeeld
Stel dat u elk getal in een lijst wilt kwadrateren. U kunt map
gebruiken om dit te bereiken:
# 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]
De filter
-functie
De functie filter
wordt gebruikt om elementen uit een iterable te filteren op basis van een functie die True
of False
retourneert. Alleen de elementen waarvoor de functie True
retourneert, worden in het resultaat opgenomen.
Syntaxis
filter(function, iterable)
Voorbeeld
Als u bijvoorbeeld alleen de even getallen uit een lijst wilt behouden, kunt u filter
gebruiken:
# 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]
De reduce
-functie
De functie reduce
, die deel uitmaakt van de module functools
, past een binaire functie cumulatief toe op de items van een itereerbare, van links naar rechts, om de itereerbare te reduceren tot één enkele waarde.
Syntaxis
from functools import reduce
reduce(function, iterable[, initializer])
Voorbeeld
Om bijvoorbeeld het product van alle getallen in een lijst te vinden, kunt u reduce
gebruiken:
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
Conclusie
De functies map
, filter
en reduce
zijn krachtige tools voor functioneel programmeren in Python. Ze bieden elegante oplossingen voor het toepassen van transformaties, het filteren van data en het reduceren van verzamelingen tot één waarde. Door deze functies onder de knie te krijgen, kunt u bondigere en expressievere code schrijven voor verschillende dataverwerkingstaken.