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

USE*_*3_T 2 python sum range indices

如何编写函数以获取给定列表中索引a和b之间的项目的总和。例如Give aList=[6,3,4,2,5]a=1b=3函数应该返回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
Run Code Online (Sandbox Code Playgroud)

For*_*Bru 5

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

sum(your_list[a:b + 1])
Run Code Online (Sandbox Code Playgroud)

your_list[a:b+1]是一个切片 - 列表的一部分,从索引开始,以索引a结束b包括两个索引中的值(这就是为什么需要b + 1)。


小智 5

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

return sum(L[a:b])
Run Code Online (Sandbox Code Playgroud)


Chr*_*dal 2

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

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
Run Code Online (Sandbox Code Playgroud)

该程序打印

结果是 9