如何将列表返回值解析为可以在中替换值的sympy表达式



嘿,我刚开始使用sympy,我在处理solve((的返回值时遇到了问题,因为它总是返回一个列表而不是症状表达。我想将值替换为我的解决方案使用sol.subs((,它只适用于sympy表达式。有人能告诉我怎么做吗?

eq1=sp.Eq(sp.sqrt(2*m*E(/h_bar,n*pi(E_n=sp.solve(eq1,E(

type(E_n(现在是一个列表。我想使用继续使用作为一种表达。例如:

E_1=E_n.subs(n,1(E_2=E_n.subs(n,2(

谢谢。

您可以使用[0]从列表中获取元素,即:

In [19]: import sympy as sp
In [20]: m, E, h_bar, n = sp.symbols('m, E, h_bar, n', positive=True)
In [21]: eq1 = sp.Eq(sp.sqrt(2 * m * E) / h_bar, n * pi)
In [22]: E_n = solve(eq1, E)[0]
In [23]: E_n
Out[23]: 
2      2  2
π ⋅h_bar ⋅n 
────────────
2⋅m     
In [24]: E_n.subs(n, 1)
Out[24]: 
2      2
π ⋅h_bar 
─────────
2⋅m