Python 3.x 元素的总和,但在python中的每次迭代中跳过一个元素

Python 3.x 元素的总和,但在python中的每次迭代中跳过一个元素,python-3.x,list,Python 3.x,List,在python中进行数组求和时,在每次迭代中跳过数组的一个元素,例如,如果我有一个数组[0,2,3,5,6,5,8,9]如何对前7个元素求和,然后在下一次迭代中对除第一个元素以外的其余数组求和 for x in range(len(arr)): maxi = max(sum(arr), maximum) return maxi 这将返回整个数组的总和,但我希望在每次迭代中跳过一个元素,然后跳过另一个元素,但添加先前跳过的元素将数组求和一次,然后减去一个元素: li = [0, 2

在python中进行数组求和时,在每次迭代中跳过数组的一个元素,例如,如果我有一个数组
[0,2,3,5,6,5,8,9]
如何对前7个元素求和,然后在下一次迭代中对除第一个元素以外的其余数组求和

for x in range(len(arr)):
   maxi = max(sum(arr), maximum)

   return maxi

这将返回整个数组的总和,但我希望在每次迭代中跳过一个元素,然后跳过另一个元素,但添加先前跳过的元素

将数组求和一次,然后减去一个元素:

li = [0, 2, 3, 5, 6, 5, 8, 9]
array_sum = sum(li)

for n in li:
    print('sum of array is', array_sum, ', without', n, 'the sum is', array_sum - n)
输出

sum of array is 38 , without 0 the sum is 38
sum of array is 38 , without 2 the sum is 36
sum of array is 38 , without 3 the sum is 35
sum of array is 38 , without 5 the sum is 33
sum of array is 38 , without 6 the sum is 32
sum of array is 38 , without 5 the sum is 33
sum of array is 38 , without 8 the sum is 30
sum of array is 38 , without 9 the sum is 29
如果您只对最大金额感兴趣:

li = [0, 2, 3, 5, 6, 5, 8, 9]
print(max(sum(li) - n for n in li))
此时,您甚至不需要循环。根据定义,我们将在子结构最小元素时得到最大和

print(sum(li) - min(li))

如果我想取这个数组的最大和怎么办?我应该试试max函数吗?我试过了,但没有成功,谢谢你code@AbdulBasitNiazi您可以将所有总和存储在一个列表中,然后使用
max
函数,或者在非常感谢@Deepspace时查找最大总和