这是我的代码,但我发现它只适用于如果数字是'偶数和奇数的顺序',所以,我如何创建一个函数,添加然后减去列表中的每个数字,所以,如果我的列表是1,3,4,5那么输出是1+3-4+5或者如果我的列表是4,6,7,4,5,3那么输出将是4+6-7+4-5+3…请帮助
def alt_sum(lst):
total = 0
for i, value in enumerate(lst):
if i % 2 == 0:
total += value
else:
total -= value
return total
print(alt_sum([3, 4, 5, 8]))
如果指数大于0,偶数,取负值,然后添加。
def alt_sum(lst):
alt_lst = [-v if (i % 2 == 0 and i > 0) else v for i, v in enumerate(lst)]
# print(alt_lst)
return sum(alt_lst)
print(alt_sum([3, 4, 5, 8]))
你的解释和样本输入/输出不一样。
你的代码是正确的,如果你的意思是even and odd in that order
作为索引,但基于样本输入/输出是错误的。下面是基于示例输入/输出的内容:
def alt_sum(lst):
total = lst[0]
for i in range(1,len(lst)):
if i % 2 == 0:
total -= lst[i]
else:
total += lst[i]
return total
print(alt_sum([3, 4, 5, 8]))
同样,我更喜欢上面那个。
def alt_sum(lst):
return lst[0]+sum([lst[i] for i in range(1,len(lst),2)])-sum([lst[i] for i in range(2,len(lst),2)])