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



我知道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。

最新更新