如何一次在Python中声明和使用很多变量?

时间:2019-04-13 05:28:14

标签: python-3.x numpy

我最近是一名进行科学计算的学生,通常,我使用odeint函数来求解微分方程,现在我需要求解具有100个变量的微分方程组。如果我遵循以前的python编程风格,我会表现得很像这个:

def XFunction(X,t,sets):
   x1,x2,x3,x4,,,,,,x100=X
   lambd=sets
   return np.array([equation1,equation2,equation3,,,,,equation100])

但是这种方法花费的时间太长,有没有更有效的方法呢?

1 个答案:

答案 0 :(得分:0)

是的,使用这样的整数后缀表示您可能想要使用序列(如列表或数组),但映射(如字典)也可以使用。因此,您可以在需要时编写x1,x2,x3...而不是X[0], X[1], X[2]...,而无需先将它们拉出本地。 X可能已经是程序中的数组。

如果只是可迭代的而不是序列,则可以先将其保存在列表中,

X = [*X]

您可以使用下标运算符X[i]

您通常不会在Python中“声明”变量,这是赋值所隐含的,尽管您可以通过给它(类型)注解来进行赋值来声明。

[equation1, ...]部分也许可以通过列表理解完成,这类似于数学集合理解,但是是有序的。

这是一个带有单个映射和过滤步骤的愚蠢示例。 (您可以有多个过滤器,也可以没有过滤器,但是必须至少使用一个循环。)

[x**2 for x in X if x % 2 == 0]

此列表理解将生成X元素在其中偶数的所有正方形的列表。

我不知道您的应用程序需要什么公式集,但是如果可以用X对其进行参数化,则可以通过这种方式来完成。