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.