Product of Array Except Self (LC-0238)

from functools import reduce

class Solution:
    def productExceptSelf(self, nums):
        zc = 0
        prod = 1
        for ix, n in enumerate(nums):
            if n == 0: zc = zc + 1
            prod = prod * n
            
        if zc > 1:
            return [0] * len(nums)
        
        out = []
        for ix, n in enumerate(nums):
            if n == 0:
                modified_nums = [(_n if ix != _ix else 1) for _ix, _n in enumerate(nums)]
                prd = reduce(lambda x, y: x * y, modified_nums)
                out.append(prd)
                continue
            out.append(prod // n)
        return out