Python - 与开始相加

时间:2014-03-24 12:13:42

标签: python python-3.x sum

>>> sum([1,2,3])
6

尝试申报起始位置失败:

>>> sum([1,2,3],1)
7

文档说sum(iterable[, start])

有人可以提供一个使用总和声明起始位置的例子。

1 个答案:

答案 0 :(得分:3)

start 表示总和起始值,而不是数组上的位置:

sum()

  

开始和从左到右的可迭代项并返回总数。

如果你想完成它,你可以使用列表切片:

>>>sum([1,2,3][1:])
5

这种切片不能使用迭代器,在这种情况下,您可以在生成器表达式中使用enumerate()。像这样:

>>> i=iter([1,2,3])
>>> sum(v for i,v in enumerate(i) if i >= 1)
5

或者更好的是@lvc在评论中指出,使用itertools.islice()函数来切片迭代器:

>>>import itertools
>>> i=iter([1,2,3])
>>> sum(itertools.islice(i,1,None))
5