如何定义SymPy中的许多符号

如何定义SymPy中的许多符号,sympy,repeat,symbols,Sympy,Repeat,Symbols,我试图在“sympy”中定义许多用于符号处理的变量 import sympy as sp b_0=sp.symbols('b_0') b_1=sp.symbols('b_1') ... b_X=sp.symbols('b_X') 以此类推,X从1到1000 有简单的方法吗?有几个选项: >>> sp.symbols('b_0:10') (b_0, b_1, b_2, b_3, b_4, b_5, b_6, b_7, b_8, b_9) 或者,使用格式化字符串 >>

我试图在“sympy”中定义许多用于符号处理的变量

import sympy as sp
b_0=sp.symbols('b_0')
b_1=sp.symbols('b_1')
...
b_X=sp.symbols('b_X')
以此类推,X从1到1000


有简单的方法吗?

有几个选项:

>>> sp.symbols('b_0:10')
(b_0, b_1, b_2, b_3, b_4, b_5, b_6, b_7, b_8, b_9)
或者,使用格式化字符串

>>> n = 10
>>> sp.symbols('b_0:{}'.format(n))
(b_0, b_1, b_2, b_3, b_4, b_5, b_6, b_7, b_8, b_9)
它们返回一个符号元组。还有更多格式选项:请参见

还有一个生成符号NumPy数组的函数:

>>> sp.symarray('b', 10)
array([b_0, b_1, b_2, b_3, b_4, b_5, b_6, b_7, b_8, b_9], dtype=object)
所有这些例子都意味着要分配给某个东西。例如,
b=sp.symbols('b_0:10')
将符号元组分配给b,因此它们可以作为
b[0]、b[1]
等进行访问。表示符号的字符串(例如
“b_0”或“b_1”)不会访问符号



最后,如果您需要一个大小不确定的符号数组,那么还有一个例子:当您使用
A[n]
表示法时,会动态创建索引对象,而
A
是索引数据库。

谢谢您的回复
sp.symarray('A',10)B=sp.diff(A,A_1)
当我尝试此操作时,它表示A_1未定义。其他方法也表示A_1未定义。我正在寻找一种方法让Python2.7确认所创建的变量。这些变量应该被分配给某个对象。我编辑了答案。注意Python变量名和SymPy符号名之间的区别。