Sobes.tech
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)