>>> sum([1,2,3])
6
尝试申报起始位置失败:
>>> sum([1,2,3],1)
7
文档说sum(iterable[, start])
有人可以提供一个使用总和声明起始位置的例子。
答案 0 :(得分:3)
start 表示总和起始值,而不是数组上的位置:
从开始和从左到右的可迭代项并返回总数。
如果你想完成它,你可以使用列表切片:
>>>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