我知道sum(list)
可以添加列表中的所有元素,但它不允许您选择范围。
例如:
l = [11, 22, 33, 44, 55, 66, 77]
x = 4
在这种情况下,我想将l[0 : 4]
加在一起。
我知道我能做到:
short_l = l[0 : x]
sum(short_l)
但是有没有一个函数允许我选择列表中的元素范围来加在一起?
答案 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。