class Solution: def productExceptSelf(self, nums): left = [1] right = [1] for x in range(1, len(nums)): left.append(left[x-1] * nums[x-1]) for x in range(1, len(nums)): right.append(1) for x in range(len(nums) - 2, -1, -1): right[x] = right[x+1] * nums[x+1] result = [] for x in range(0, len(left)): result.append(left[x] * right[x]) return result s = Solution() print("Expected: [24, 12, 8, 6]") print("Got:", s.productExceptSelf([1, 2, 3, 4]))