如果我有一个支持变量参数号的函数,即使用* args,我如何从循环/列表推导中填充参数?假设函数需要多个列表作为参数,我有一个表/数据框,并希望将每列用作输入参数,为什么这不起作用?
funName([df[iCol].values for iCol in df.columns])
假设我的数据框有5列,我需要像这样调用函数:
funName(col1, col2, col3, col4, col5)
但我不想为每列手动创建变量,而是动态填充参数列表。感谢。
答案 0 :(得分:6)
在传递列表时解压缩列表:
funName(*[df[iCol].values for iCol in df.columns])
列表拆包是必需的,因为如果你没有,fn
会得到一个参数,这是一个列表,比如[1, 2, 3]
,你需要一系列参数{{1} }。
例如:
1, 2, 3