如何将列表 return 值解析为可以替换值的 sympy 表达式?

How to parse list return value into sympy expression which you can substitute values in?

嘿,我是 sympy 的新手,我在使用 solve() 的 return 值时遇到问题,因为它总是返回一个列表 而不是同情的表达。我想将值代入 我使用 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