reduce()

10 min 4 exercices Niveau 4

La Fonction reduce() en Python

reduce() est une fonction du module functools en Python qui permet de réduire un itérable à une seule valeur en appliquant de manière répétée une fonction à ses éléments.

Importation de reduce()

Avant d'utiliser reduce(), il faut l'importer depuis le module functools :

from functools import reduce

Utilisation de Base

Syntaxe

reduce(function, iterable[, initializer])

function : Une fonction de deux arguments. À chaque étape, reduce() applique cette fonction aux éléments cumulés de l'itérable. iterable : Un itérable dont les éléments seront réduits. initializer (facultatif) : Une valeur initiale pour commencer la réduction. Si non spécifié, le premier élément de l'itérable est utilisé.

Exemple

def somme(x, y):
    return x + y

nombres = [1, 2, 3, 4]
resultat = reduce(somme, nombres)

resultat est maintenant 10, qui est la somme de tous les éléments de nombres.

Fonctionnement de reduce()

reduce() commence par prendre les deux premiers éléments de l'itérable et applique function à ces éléments. Le résultat est ensuite utilisé avec le prochain élément de l'itérable, et ce processus se répète jusqu'à ce que tous les éléments aient été traités.

Utilisations Courantes

Agrégation de Données : Parfait pour calculer des sommes, des produits, et d'autres agrégations. Transformation et Réduction : Transforme un ensemble de données en une seule valeur basée sur une logique personnalisée.

Utilisation avec des Fonctions Lambda

reduce() est souvent utilisé avec des fonctions lambda pour des opérations simples et anonymes.

resultat = reduce(lambda x, y: x * y, nombres)  # Produit de tous les éléments

Bonnes Pratiques

Clarté : Utilisez reduce() lorsque la logique de réduction est simple et claire. Pour des opérations plus complexes, envisagez des alternatives plus lisibles. Initializer : Spécifiez initializer pour éviter des erreurs si l'itérable est vide. Prudence avec les Effets Secondaires : Assurez-vous que la fonction utilisée ne produit pas d'effets secondaires indésirables.

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus