如何在使用map函数时传递kwargs

  • 本文关键字:kwargs 函数 map python
  • 更新时间 :
  • 英文 :


如上所述,我想使用map函数将一个函数应用于一堆东西,并将结果收集到列表中。然而,我不知道如何将kwargs传递给该函数。

具体程度:

map(fun, elements)

夸尔格呢?

使用生成器表达式而不是map

(fun(x, **kwargs) for x in elements)

例如

reduce(fun(x, **kwargs) for x in elements)

或者,如果你直接进入一个列表,请使用列表理解:

[fun(x, **kwargs) for x in elements]

这个问题已经在Python的"map"和打开的参数中得到了回答

地图并不完全支持命名变量,但可以根据位置处理多个变量。

由于Python 3的标准映射可以单独列出多参数的参数

map(fun, listx, listy, listz)

尽管命名变量的可变长度列表不太方便,特别是在函数签名中存在**kwargs的情况下。不过,你可以,引入一些中间函数来分别封装位置参数和命名参数。有关lambda的单行解决方案,请参阅Python"map"和参数拆包如果你不精通lambda,你可以按照下面的

def foldarg(param): 
return f(param[0], **param[1])
list(map(foldarg, elements))

其中elements类似于

[[[1,2], dict(x=3, y=4)],
[[-2,-2], dict(w=3, z=4)]]

对于未命名的变量列表,您也可以使用itertools.starmap

最新更新