Înțelegerea funcțiilor de hartă, filtrare și reducere a lui Python
Python oferă mai multe instrumente de programare funcționale care pot simplifica sarcinile de procesare a datelor. Printre acestea se numără funcțiile map
, filter
și reduce
. Aceste funcții vă permit să efectuați operațiuni asupra colecțiilor de date într-un mod concis și ușor de citit. Acest articol explorează fiecare dintre aceste funcții și oferă exemple pentru a vă ajuta să înțelegeți cum să le utilizați eficient.
Funcția map
Funcția map
aplică o funcție dată tuturor elementelor dintr-o listă de intrare (sau orice iterabil) și returnează un iterator care dă rezultatele. Acest lucru este util în special pentru aplicarea transformărilor fiecărui element dintr-o colecție.
Sintaxă
map(function, iterable)
Exemplu
Să presupunem că doriți să pătrați fiecare număr dintr-o listă. Puteți utiliza map
pentru a realiza acest lucru:
# 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]
Funcția filtru
Funcția filter
este folosită pentru a filtra elementele dintr-un iterabil pe baza unei funcții care returnează True
sau False
. Doar elementele pentru care funcția returnează True
sunt incluse în rezultat.
Sintaxă
filter(function, iterable)
Exemplu
De exemplu, dacă doriți să păstrați numai numerele pare dintr-o listă, puteți utiliza 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]
Funcția reduce
Funcția reduce
, care face parte din modulul functools
, aplică o funcție binară în mod cumulativ elementelor unui iterabil, de la stânga la dreapta, astfel încât să reducă iterabilul la un singur valoare.
Sintaxă
from functools import reduce
reduce(function, iterable[, initializer])
Exemplu
De exemplu, pentru a găsi produsul tuturor numerelor dintr-o listă, puteți folosi 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
Concluzie
Funcțiile map
, filter
și reduce
sunt instrumente puternice pentru programarea funcțională în Python. Ele oferă soluții elegante pentru aplicarea transformărilor, filtrarea datelor și reducerea colecțiilor la o singură valoare. Prin stăpânirea acestor funcții, puteți scrie cod mai concis și mai expresiv pentru o varietate de sarcini de procesare a datelor.