要从sympy表达式中获取所有变量,可以在表达式上调用.free_symbols
。我想检索表达式中使用的所有函数。例如,来自y
from sympy import *
f = Function('f')
g = Function('g')
x = Symbol('x')
y = f(x) + 2*g(x)
我想获得f
和g
。
任何提示?
答案 0 :(得分:4)
atoms
可以解决问题:
for f in y.atoms(Function):
print(f.func)
答案 1 :(得分:2)
对于所有功能,请使用atoms(Function)
。
In [40]: (f(x) + sin(x)).atoms(Function)
Out[40]: set([f(x), sin(x)])
仅对于未定义的函数,请使用atoms(AppliedUndef)
。
In [41]: from sympy.core.function import AppliedUndef
In [42]: (f(x) + sin(x)).atoms(AppliedUndef)
Out[42]: set([f(x)])