我在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)))
答案 0 :(得分:2)
对于每个the docs,SeqFormula
中的项目可以用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