Middle — Senior
Comment prendre en compte les cas avec des zéros dans le produit des éléments de la liste?
sobes.tech IA
Réponse de l'IA
Lors du calcul du produit des éléments d'une liste contenant des zéros, il est important de noter qu'au moins un zéro annule tout le résultat. Pour gérer ces cas correctement, on peut :
- Vérifier la présence de zéros à l'avance. Si un zéro est trouvé, le résultat est immédiatement 0.
- Si l'on doit calculer le produit sans zéros, on peut ignorer ou compter séparément les zéros.
- Pour les tâches où il faut connaître le produit de tous les éléments sauf le courant, on peut utiliser une approche avec des produits prefix et suffix, en tenant compte du nombre de zéros.
Exemple en Python prenant en compte les zéros :
from functools import reduce
from operator import mul
def product_with_zeros(lst):
zero_count = lst.count(0)
if zero_count > 1:
return 0 # plus d'un zéro — le produit est toujours 0
elif zero_count == 1:
# produit de tous les éléments sauf le zéro
prod = 1
for x in lst:
if x != 0:
prod *= x
return 0 if prod == 0 else 0 # le produit final sera 0
else:
return reduce(mul, lst, 1)