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.