序列的求和

时间:2019-03-07 10:25:23

标签: python sequence sympy

我在Python sympy中有一个简单的值序列。我想对这些值求和 的顺序。我提供了一个解决方案,但是它很笨拙。 有没有一种更自然的方法?

#!/usr/bin/env python

from sympy import summation, sequence, pprint
from sympy.abc import x

s = sequence(x, (x, 1, 10))
print(s)
pprint(s)

print(summation(s.formula, (x, s.interval.left, s.interval.right)))

1 个答案:

答案 0 :(得分:2)

对于每个the docsSeqFormula中的项目可以用list枚举:

In [53]: list(s)
Out[53]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

所以求和可以用

In [54]: sum(list(s))
Out[54]: 55

当然,这仅适用于有限序列。


写总和的另一种方法是:

In [115]: summation(s.formula, (x, s.start, s.stop))
Out[115]: 55