Comprendre les fonctions Map, Filter et Reduce de Python

Python propose plusieurs outils de programmation fonctionnelle qui peuvent simplifier les tâches de traitement de données. Parmi ceux-ci figurent les fonctions map, filter et reduce. Ces fonctions vous permettent d'effectuer des opérations sur des collections de données de manière concise et lisible. Cet article explore chacune de ces fonctions et fournit des exemples pour vous aider à comprendre comment les utiliser efficacement.

La fonction map

La fonction map applique une fonction donnée à tous les éléments d'une liste d'entrée (ou de tout itérable) et renvoie un itérateur qui donne les résultats. Ceci est particulièrement utile pour appliquer des transformations à chaque élément d'une collection.

Syntaxe

map(function, iterable)

Exemple

Supposons que vous souhaitiez mettre au carré chaque nombre d'une liste. Vous pouvez utiliser map pour y parvenir:

# 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]

La fonction filter

La fonction filter permet de filtrer les éléments d'un itérable en fonction d'une fonction qui renvoie True ou False. Seuls les éléments pour lesquels la fonction renvoie True sont inclus dans le résultat.

Syntaxe

filter(function, iterable)

Exemple

Par exemple, si vous souhaitez conserver uniquement les nombres pairs d'une liste, vous pouvez utiliser 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]

La fonction reduce

La fonction reduce, qui fait partie du module functools, applique une fonction binaire de manière cumulative aux éléments d'un itérable, de gauche à droite, de manière à réduire l'itérable à une seule valeur.

Syntaxe

from functools import reduce

reduce(function, iterable[, initializer])

Exemple

Par exemple, pour trouver le produit de tous les nombres d'une liste, vous pouvez utiliser 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

Conclusion

Les fonctions map, filter et reduce sont des outils puissants pour la programmation fonctionnelle en Python. Elles fournissent des solutions élégantes pour appliquer des transformations, filtrer des données et réduire des collections à une seule valeur. En maîtrisant ces fonctions, vous pouvez écrire du code plus concis et plus expressif pour diverses tâches de traitement de données.