dte*_*ter 2 python arguments function args kwargs
如果我有一个支持变量参数号的函数,即使用*args,我如何从循环/列表理解中填充参数?假设函数需要多个列表作为参数,并且我有一个表/数据帧,并希望将每列用作输入参数,为什么这不起作用?
funName([df[iCol].values for iCol in df.columns])
假设我的数据框有5列,我需要像这样调用函数:
funName(col1, col2, col3, col4, col5)
但我不想为每列手动创建变量,而是动态填充参数列表.谢谢.
传递时将列表解压缩:
funName(*[df[iCol].values for iCol in df.columns])
列表解包是必需的,因为如果你不这样做,fn将获得一个参数,这是一个列表,比如说[1, 2, 3],你需要一系列参数1, 2, 3.
例如:
>>> def fn(*args):
... print args
...
>>> fn([1, 2, 3])
([1, 2, 3],)
>>> fn(*[1, 2, 3])
(1, 2, 3)
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |