Middle — Senior
Hogyan kezeljük a nullákat a listaelemek szorzásánál?
sobes.tech MI
Válasz az MI-től
Nullákat tartalmazó lista elemeinek szorzásakor fontos figyelembe venni, hogy legalább egy nullával az egész eredmény nullává válik. Ezeket az eseteket helyesen kezelhetjük:
- Előzetesen ellenőrizhetjük a nullák jelenlétét. Ha nullát találunk, az eredmény azonnal 0.
- Ha nullák nélkül kell kiszámítani a szorzatot, figyelmen kívül hagyhatjuk vagy külön számolhatjuk őket.
- Olyan feladatoknál, ahol minden elem szorzatát kell ismerni a jelenlegi kivételével, használhatunk prefix- és suffix-szorzásokat, figyelembe véve a nullák számát.
Python példa, amely figyelembe veszi a nullákat:
from functools import reduce
from operator import mul
def product_with_zeros(lst):
zero_count = lst.count(0)
if zero_count > 1:
return 0 # több nullával — a szorzat mindig 0
elif zero_count == 1:
# minden elem szorzata a nullán kívül
prod = 1
for x in lst:
if x != 0:
prod *= x
return 0 if prod == 0 else 0 # a végső szorzat 0 lesz
else:
return reduce(mul, lst, 1)