Förstå Pythons kart-, filter- och reduceringsfunktioner
Python tillhandahåller flera funktionella programmeringsverktyg som kan förenkla databearbetningsuppgifter. Bland dessa finns funktionerna map
, filter
och reduce
. Dessa funktioner låter dig utföra operationer på insamlingar av data på ett kortfattat och läsbart sätt. Den här artikeln utforskar var och en av dessa funktioner och ger exempel som hjälper dig att förstå hur du använder dem effektivt.
Funktionen map
Funktionen map
tillämpar en given funktion på alla objekt i en inmatningslista (eller någon itererbar) och returnerar en iterator som ger resultaten. Detta är särskilt användbart för att tillämpa transformationer på varje element i en samling.
Syntax
map(function, iterable)
Exempel
Anta att du vill kvadratisera varje nummer i en lista. Du kan använda map
för att uppnå detta:
# 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
-funktionen
Funktionen filter
används för att filtrera bort element från en iterabel baserat på en funktion som returnerar True
eller False
. Endast de element för vilka funktionen returnerar True
ingår i resultatet.
Syntax
filter(function, iterable)
Exempel
Om du till exempel bara vill behålla de jämna talen från en lista kan du använda 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]
Funktionen reducera
Funktionen reduce
, som är en del av functools
-modulen, applicerar en binär funktion kumulativt på objekten i en iterabel, från vänster till höger, för att reducera den iterbara till en enda värde.
Syntax
from functools import reduce
reduce(function, iterable[, initializer])
Exempel
Till exempel, för att hitta produkten av alla tal i en lista kan du använda minska
:
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
Slutsats
Funktionerna map
, filter
och reduce
är kraftfulla verktyg för funktionell programmering i Python. De tillhandahåller eleganta lösningar för att tillämpa transformationer, filtrera data och reducera samlingar till ett enda värde. Genom att behärska dessa funktioner kan du skriva mer koncis och uttrycksfull kod för en mängd olika databearbetningsuppgifter.