我开始感到有点愚蠢,因为没有搞清楚......
说我有两个变量的函数:
def testfun(x,y):
return x*y
现在我有一个值列表,比如说[2,3]
,我想把它作为值输入到函数中。最恐怖的方法是什么?我想到了这样的事情:
def listfun(X):
X_as_strs = str(X).strip('[]')
expression = 'testfun({0})'.format(X_as_strs)
return eval(expression)
...但它看起来非常不像pythonic,我也不想处理字符串!是否有一个内衬(例如)会让我觉得内心充满了刺激和可爱(就像Python经常发生的那样)?我觉得它可能是一种疯狂的东西......
答案 0 :(得分:2)
*
符号在这里很适合你。
def testfun(x,y):
return x*y
def listfun(X):
return testfun(*X)
>>> testlist = [3,5]
>>> listfun(testlist)
15
>>> testfun(*testlist)
15
*
表示法专门用于解包函数调用列表。我没有看到它在任何其他环境中有效,但调用testfun(*[3,5])
等同于调用testfun(3,5)
。