【发布时间】:2016-10-15 11:11:49
【问题描述】:
如何编写一个函数来获取索引 a 和 b 之间给定列表中项目的总和。例如给aList=[6,3,4,2,5]和a=1,b=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
【问题讨论】:
如何编写一个函数来获取索引 a 和 b 之间给定列表中项目的总和。例如给aList=[6,3,4,2,5]和a=1,b=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
【问题讨论】:
您可以通过列表切片实现此目的:
sum(your_list[a:b + 1])
这里,your_list[a:b+1] 是一个切片 - 你的列表 的一部分,从索引a 开始,以索引b 结束,包括两个索引的值(这就是你需要b + 1的原因)。
【讨论】:
您可以简单地在 python 中使用索引切片和 sum 函数。
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
这个程序打印
结果是 9
【讨论】: