对列表中的数字求和,但遇到零后更改其符号

Cod*_*e34 9 python sum list

我需要对列表中的所有数字求和。如果发生0,则开始减法,直到另一个0,开始加法。

例如:

[1, 2, 0, 3, 0, 4] -> 1 + 2 - 3 + 4 = 4
[0, 2, 1, 0, 1, 0, 2] -> -2 - 1 + 1 - 2 = -4
[1, 2] -> 1 + 2 = 3
[4, 0, 2, 3] = 4 - 2 - 3 = -1
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

sss = 0

for num in numbers:
    if 0 == num:
        sss = -num
    else:
        sss += num
return sss
Run Code Online (Sandbox Code Playgroud)

小智 17

当列表的元素等于0时更改符号。

result = 0
current_sign = 1
for element in your_list:
    if element == 0:
       current_sign *= -1
    result += current_sign*element

Run Code Online (Sandbox Code Playgroud)