Î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: 120Concluzie
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.