【问题标题】:Sum all numbers in a given range of a given list Python对给定列表Python的给定范围内的所有数字求和
【发布时间】:2016-10-15 11:11:49
【问题描述】:

如何编写一个函数来获取索引 a 和 b 之间给定列表中项目的总和。例如给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

【问题讨论】:

    标签: python sum range indices


    【解决方案1】:

    您可以通过列表切片实现此目的:

    sum(your_list[a:b + 1])
    

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

    【讨论】:

      【解决方案2】:

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

      return sum(L[a:b])
      

      【讨论】:

        【解决方案3】:

        您似乎想要推出自己的解决方案。您可以这样做(根据您的问题中的代码):

        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

        【讨论】:

          猜你喜欢
          • 2015-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-03
          相关资源
          最近更新 更多