给定一个列表,返回列表中所有数字的总和。但是,如果数字 5 出现在列表中,则必须将其翻倍,而紧随 5 之后的数字需要翻两番。所以下面的列表 [1, 2, 4, 1, 5, 2] 应该返回 26,而 [5, 1, 6] 应该返回 20。
这是我到目前为止所拥有的:
def list_sum(x):
if len(x) == 0:
return 0
else:
sum2 = 0
for i in x:
if i == 5:
sum2 += 5*2
if x[i - 1] == 5:
sum2 += i * 4
else:
sum2 += i
return sum2
我可以成功完成问题的第一部分,将列表中的任何 5 乘以 2,但在第二部分遇到问题,我必须要求代码将 5 之后的数字翻两番。我x[i - 1] == 5想基本上是索引5 之后出现的元素,但在尝试了一些打印语句之后,我注意到那行代码实际上并没有做任何事情......所以有什么提示吗?
快速说明:仅使用循环和 if 语句来解决此问题