Python使用* args填充函数的输入参数

时间:2016-04-26 14:05:48

标签: python function arguments args kwargs

如果我有一个支持变量参数号的函数,即使用* args,我如何从循环/列表推导中填充参数?假设函数需要多个列表作为参数,我有一个表/数据框,并希望将每列用作输入参数,为什么这不起作用?

funName([df[iCol].values for iCol in df.columns])

假设我的数据框有5列,我需要像这样调用函数:

funName(col1, col2, col3, col4, col5)

但我不想为每列手动创建变量,而是动态填充参数列表。感谢。

1 个答案:

答案 0 :(得分:6)

在传递列表时解压缩列表:

funName(*[df[iCol].values for iCol in df.columns])

列表拆包是必需的,因为如果你没有,fn会得到一个参数,这是一个列表,比如[1, 2, 3],你需要一系列参数{{1} }。

例如:

1, 2, 3