我知道sum(list)
可以在列表中添加所有元素,但它不允许您选择范围。
前任:
l = [11, 22, 33, 44, 55, 66, 77]
x = 4
在这种情况下,我想l[0 : 4]
加在一起。
我知道我能做到:
short_l = l[0 : x]
sum(short_l)
但是,是否有一个函数允许我选择要添加在一起的列表中元素的范围?
如果不想创建子列表,可以使用itertools.islice
:
>>> import itertools
>>> l = [11, 22, 33, 44, 55, 66, 77]
>>> sum(itertools.islice(l, 0, 4))
110
您可以使用
内置的 slice
函数来获取项目范围,如下所示
l, x = [11, 22, 33, 44, 55, 66, 77], 4
print(sum(l[slice(0, 4)]))
# 110
要slice
的参数与切片语法相同。
为什么还需要一个新函数?只要sum(l[0:x])
.如果你真的想要一个函数,你可以自己定义一个:
def sum_range(lst, end, start=0):
return(sum(lst[start : end + 1]))
从索引开始到结束添加,包括结束。如果未指定,则 start 默认为索引 0。