Forstå Pythons kart-, filter- og reduksjonsfunksjoner
Python tilbyr flere funksjonelle programmeringsverktøy som kan forenkle databehandlingsoppgaver. Blant disse er funksjonene kart
, filter
og reduser
. Disse funksjonene lar deg utføre operasjoner på innsamlinger av data på en kortfattet og lesbar måte. Denne artikkelen utforsker hver av disse funksjonene og gir eksempler for å hjelpe deg å forstå hvordan du bruker dem effektivt.
map
-funksjonen
map
-funksjonen bruker en gitt funksjon på alle elementer i en inndataliste (eller en hvilken som helst iterabel) og returnerer en iterator som gir resultatene. Dette er spesielt nyttig for å bruke transformasjoner til hvert element i en samling.
Syntaks
map(function, iterable)
Eksempel
Anta at du ønsker å kvadrere hvert tall i en liste. Du kan bruke map
for å oppnå dette:
# 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
-funksjonen
filter
-funksjonen brukes til å filtrere ut elementer fra en iterabel basert på en funksjon som returnerer True
eller False
. Bare elementene som funksjonen returnerer True
for er inkludert i resultatet.
Syntaks
filter(function, iterable)
Eksempel
Hvis du for eksempel vil beholde bare partallene fra en liste, kan du bruke 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]
reduser
-funksjonen
reduce
-funksjonen, som er en del av functools
-modulen, bruker en binær funksjon kumulativt på elementene i en iterabel, fra venstre til høyre, for å redusere den iterable til en enkelt verdi.
Syntaks
from functools import reduce
reduce(function, iterable[, initializer])
Eksempel
For å finne produktet av alle tallene i en liste kan du for eksempel bruke reduser
:
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
Konklusjon
Funksjonene map
, filter
og reduce
er kraftige verktøy for funksjonell programmering i Python. De tilbyr elegante løsninger for å bruke transformasjoner, filtrere data og redusere samlinger til én enkelt verdi. Ved å mestre disse funksjonene kan du skrive mer kortfattet og uttrykksfull kode for en rekke databehandlingsoppgaver.