Application de reduce() à des problèmes courants
Calcul de la somme des éléments
L'un des cas d'utilisation les plus courants de la fonction reduce()
est de calculer la somme de tous les éléments d'une liste ou de tout autre itérable. Voici un exemple :
from functools import reduce
numbers = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, numbers)
print(total) ## Output: 15
Dans cet exemple, la fonction reduce()
applique la fonction lambda lambda x, y: x + y
aux éléments de la liste numbers
, en commençant par les deux premiers éléments, puis le résultat et le prochain élément, et ainsi de suite, jusqu'à ce que l'ensemble de la liste ait été traité. Le résultat final est la somme de tous les éléments, qui est 15
.
Recherche de la valeur maximale ou minimale
La fonction reduce()
peut également être utilisée pour trouver la valeur maximale ou minimale dans une liste ou tout autre itérable. Voici un exemple pour trouver la valeur maximale :
from functools import reduce
numbers = [5, 2, 8, 1, 9]
max_value = reduce(lambda x, y: x if x > y else y, numbers)
print(max_value) ## Output: 9
Dans cet exemple, la fonction reduce()
applique la fonction lambda lambda x, y: x if x > y else y
aux éléments de la liste numbers
, en commençant par les deux premiers éléments, puis le résultat et le prochain élément, et ainsi de suite, jusqu'à ce que l'ensemble de la liste ait été traité. Le résultat final est la valeur maximale, qui est 9
.
Mise en œuvre d'algorithmes personnalisés
La fonction reduce()
peut également être utilisée pour mettre en œuvre des algorithmes plus complexes. Par exemple, disons que nous voulons implémenter une fonction qui calcule la factorielle d'un nombre. Nous pouvons utiliser reduce()
pour cela :
from functools import reduce
def factorial(n):
return reduce(lambda x, y: x * y, range(1, n + 1))
print(factorial(5)) ## Output: 120
Dans cet exemple, la fonction reduce()
applique la fonction lambda lambda x, y: x * y
aux éléments de la liste range(1, n + 1)
, en commençant par les deux premiers éléments, puis le résultat et le prochain élément, et ainsi de suite, jusqu'à ce que l'ensemble de la liste ait été traité. Le résultat final est la factorielle du nombre d'entrée, qui est 120
.
Ce ne sont que quelques exemples de la façon dont vous pouvez utiliser la fonction reduce()
pour résoudre des problèmes courants en Python. Dans la section suivante, nous explorerons des techniques plus avancées pour utiliser efficacement reduce()
.