如何将列表/元组指定为python函数的参数

时间:2017-06-02 15:14:38

标签: list arguments tuples typeerror symbolic-math

我试图估计一个由不同数量的参数组成的大符号表达式的数值估计(例如21,但假设其他表达式的变量数量未知)。因此,我使用sym.lambdify()将符号表达式(expression_sym)转换为python函数(fn_expression),我可以使用它来查找其相应符号表达式的数值估计值({{1 }})。

expression_sym

现在,我在名为import sympy as sym symbols_tuple = tuple(expression_sym.free_symbols) fn_expression = sym.lambdify(symbols_tuple, expression_sym) 的变量中为symbols_tuple中的所有符号提供常量数值。但是,free_symbols_val还包含free_symbols_val中不存在的一些其他变量名称。

symbols_tuple

现在我拥有free_symbols_val = foo() # numerical values for all symbols from some function foo() 中所有符号/变量的所有数值,我可以简单地传递已知属于fn_expression的变量名称。我无法直接使用expression_sym作为输入,因为它包含的变量多于free_symbols_val中的变量。

fn_expression

但是,直接使用fn_num = fn_expression(symbols_tuple) 作为symbols_tuple的参数会产生如下TypeError:

fn_expression()

注意:

我知道python中的TypeError: <lambda>() takes exactly 21 arguments (1 given) 可用于分配未知数量的参数,但这不起作用,即如果我使用*args它不起作用和抛出以下错误:

fn_expression(*symbols_tuple)

0 个答案:

没有答案
相关问题