python - 一个序列的 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)))
解决方案
根据docs, a SeqFormula
s 中的项目可以用以下方式枚举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
推荐阅读
- flutter - 如何在 Flutter 中重置倒计时
- sql - 为什么在 CASE 表达式上调用 SUM 会给出“缺少右括号”?
- angular - Angular 路由重定向到 /# 从而刷新页面
- emmet - 我不能不使用 Emmet 键盘快捷键
- r - 是否可以使用 lapply 而不是 for 循环更改列表中数组的维度名称?
- amazon-web-services - AWS 'Amplify push' 命令在 React Native 项目中给出'文件已存在于 amplify/.temp/#current-cloud-backend' 错误
- python - 试图创建一个计时器来暂停python中的循环
- python - 蟒蛇 | 字符串检查不区分大小写
- javascript - 在'foreach' javascript中迭代数组时'if'不起作用
- python - 必须安装 libgcc_s.so.1 才能使 pthread_cancel 工作