如何从列表中添加一系列整数元素? Python 3.3

时间:2014-03-05 06:20:20

标签: python list python-3.x sum

我知道sum(list)可以添加列表中的所有元素,但它不允许您选择范围。

例如:

l = [11, 22, 33, 44, 55, 66, 77]    
x = 4

在这种情况下,我想将l[0 : 4]加在一起。

我知道我能做到:

short_l = l[0 : x]
sum(short_l)

但是有没有一个函数允许我选择列表中的元素范围来加在一起?

3 个答案:

答案 0 :(得分:1)

您可以使用内置slice函数来获取项目范围,例如

l, x = [11, 22, 33, 44, 55, 66, 77], 4
print(sum(l[slice(0, 4)]))
# 110

slice的参数与slicing syntax相同。

答案 1 :(得分:1)

如果您不想创建子列表,可以使用itertools.islice

>>> import itertools
>>> l = [11, 22, 33, 44, 55, 66, 77]
>>> sum(itertools.islice(l, 0, 4))
110

答案 2 :(得分:0)

为什么你还需要一个新功能?只做sum(l[0:x])。如果你真的想要一个功能,你可以自己定义一个:

def sum_range(lst, end, start=0):
    return(sum(lst[start : end + 1]))

从索引开始到结束添加包括结束。如果未指定,则start默认为索引0。