Python 我怎样才能得到一个symphy表达式中的符号列表?
例如,如果我跑步Python 我怎样才能得到一个symphy表达式中的符号列表?,python,python-3.x,sympy,Python,Python 3.x,Sympy,例如,如果我跑步 import sympy x, y, z = sympy.symbols('x:z') f = sympy.exp(x + y) - sympy.sqrt(z) 是否有任何f方法可用于获取表达式包含的sympy.Symbol对象的列表或元组?我不想解析srepr(f)或者通过f.args向下解析 在本例中,g.args[0].args[1].args[0]为我提供了Symbol(“z”),而g.args[1].args[0].args为我提供了元组(Symbol(“x”),S
import sympy
x, y, z = sympy.symbols('x:z')
f = sympy.exp(x + y) - sympy.sqrt(z)
是否有任何f
方法可用于获取表达式包含的sympy.Symbol
对象的列表或元组?我不想解析srepr(f)
或者通过f.args
向下解析
在本例中,g.args[0].args[1].args[0]
为我提供了Symbol(“z”)
,而g.args[1].args[0].args
为我提供了元组(Symbol(“x”),Symbol(“y”)
,但显然这些是特定于表达式的。您可以使用:
f.free_symbols
它将返回一组所有自由符号
例如:
>>> import sympy
>>> x, y, z = sympy.symbols('x:z')
>>> f = sympy.exp(x + y) - sympy.sqrt(z)
>>> f.free_symbols
set([x, z, y])
请注意,仅列出自由变量
如果您有a、a、an或类似的内容,您可能希望也可能不希望使用.variables
属性额外了解积分/求和变量:
In [216]: (x, n) = sympy.symbols("x n")
In [217]: f = sympy.Sum(x, (n, 0, 10))
In [218]: f.free_symbols
Out[218]: {x}
In [219]: f.variables
Out[219]: [n]
一个非常有用的属性是原子
x,y,z=sympy.symbols('x:z')
expr1=sympy.exp(x+y)-sympy.sqrt(z)
显示(expr1.free_符号)
显示(表示原子(符号))
{请注意,这只返回自由符号。例如,对于Sum(T,(n,1,n))/n
它返回{n,T}
,但不返回n
。请注意variables
属性仅适用于这些具体的表达式类型。例如,这失败:f=sympy.Sum(x,(n,0,10))*2
因为现在f
的类型是Mul
,它没有该属性。