Python-使用字符串作为表达式(exec和eval不工作)

Python-使用字符串作为表达式(exec和eval不工作),python,scipy,eval,Python,Scipy,Eval,我正在尝试使用scipy.stats.f\u oneway()执行方差分析。它将array\u like作为输入,不管这意味着什么 无论如何,当我手动输入要比较的数据时,它会起作用。例如,这项工作: 输入: 输出: F_onewayResult(statistic=2.3999, pvalue=0.1461) 然而,我想比较许多不同的列表,并且我想在代码中动态地比较它们 这就是我想要的: list1 = [3,4,5,6] list2 = [4,5,6,7] list3 = [5,6,7,8

我正在尝试使用
scipy.stats.f\u oneway()
执行方差分析。它将
array\u like
作为输入,不管这意味着什么

无论如何,当我手动输入要比较的数据时,它会起作用。例如,这项工作: 输入:

输出:

F_onewayResult(statistic=2.3999, pvalue=0.1461)
然而,我想比较许多不同的列表,并且我想在代码中动态地比较它们

这就是我想要的:

list1 = [3,4,5,6]
list2 = [4,5,6,7]
list3 = [5,6,7,8]
listOfLists = [list1, list2, list3]
sp.stats.f_oneway(listOfLists)
然而,f_oneway不喜欢这种输入格式。所以我在想,也许我可以使用一个循环来创建一个字符串,然后将其解包用作参数,如下所示:

list1 = [3,4,5,6]
list2 = [4,5,6,7]
list3 = [5,6,7,8]
listString = 'list1, list2, list3'
sp.stats.f_oneway(eval(listString))
然而,这不起作用。这让我相信这个函数需要输入如下内容:

sp.stats.f_oneway(list1, list2, list3)
如何使用字符串提供f_单向函数所需的输入?

您可以这样做:

sp.stats.f_oneway(*listOflists)

这将打开列表并放入3个单独的参数

谢谢!我没有见过星型操作员。比我想象中的弦乐好得多。
sp.stats.f_oneway(*listOflists)