Î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.