首页 > 解决方案 > 如何从 sympy 符号中检索整数索引

问题描述

我有一个列表 L 使用以下函数定义的 sympy 符号:def x(i): return sy.symbols(f'x({i})')

L=[x(10),x(33),....]. 是否可以从 sympy 符号中获取数字 10,33,...?

标签: sympy

解决方案


您可以使用任何您喜欢的 python 方法从符号名称中解析数字,例如

>>> x = Symbol('x(10)')
>>> int(x.name.split("(")[1].split(")")[0])
10

当然,解析的方法将取决于您如何隐藏符号名称中的数字。简单地使用索引符号可能更容易:

>>> from sympy import IndexedBase
>>> x = IndexedBase('x')
>>> x[1] + x[1]
2*x[1]
>>> x[1].indices
(1,)

推荐阅读