对给定列表的给定范围内的所有数字求和 Python

Sum all numbers in a given range of a given list Python

我如何编写一个函数来获取给定列表中索引 a 和 b 之间的项目的总和。例如给 aList=[6,3,4,2,5]a=1, b=3, 函数应该 return 9. 这是我的代码:

def sumRange(L,a,b):
    sum= []
    L = [6,3,4,2,5]
    for i in range(a,b+1,1):
    sum +=L[i]
    return sum

您可以通过列表切片来实现:

sum(your_list[a:b + 1])

在这里,your_list[a:b+1] 是一个 切片 - 你的列表 的一部分,从索引 a 开始并以索引 b 结尾,包括两个索引处的值 (这就是您需要 b + 1 的原因)。

您可以简单地在 python 和求和函数中使用索引切片。

return sum(L[a:b])

看来您想推出自己的解决方案。你可以这样做(基于你在问题中的代码):

def sumRange(L,a,b):                                                                                                                                                                                                
    sum = 0                                                                                                                                                                                                         
    for i in range(a,b+1,1):                                                                                                                                                                                        
        sum += L[i]                                                                                                                                                                                                  
    return sum                                                                                                                                                                                                      

L = [6,3,4,2,5]                                                                                                                                                                                                     
a = 1                                                                                                                                                                                                               
b = 3                                                                                                                                                                                                               

result = sumRange(L,a,b)                                                                                                                                                                                            

print "The result is", result

这个程序打印

The result is 9