Middle — Senior
Jak uwzględnić przypadki z zerami w iloczynie elementów listy?
sobes.tech AI
Odpowiedź od AI
Przy obliczaniu iloczynu elementów listy zawierającej zera, ważne jest, aby pamiętać, że obecność co najmniej jednego zera unieważnia cały wynik. Aby poprawnie obsłużyć takie przypadki, można:
- Wcześniej sprawdzić obecność zer. Jeśli zostanie znaleziony zero, wynik od razu wynosi 0.
- Jeśli trzeba obliczyć iloczyn bez zer, można je ignorować lub liczyć osobno.
- Dla zadań, w których trzeba znać iloczyn wszystkich elementów oprócz bieżącego, można użyć podejścia z produktami prefiksowymi i sufiksowymi, uwzględniając liczbę zer.
Przykład w Pythonie uwzględniający zera:
from functools import reduce
from operator import mul
def product_with_zeros(lst):
zero_count = lst.count(0)
if zero_count > 1:
return 0 # więcej niż jedno zero — iloczyn zawsze 0
elif zero_count == 1:
# iloczyn wszystkich elementów oprócz zera
prod = 1
for x in lst:
if x != 0:
prod *= x
return 0 if prod == 0 else 0 # końcowy iloczyn będzie 0
else:
return reduce(mul, lst, 1)