我不断遇到以下包装器的用例:
def asterisk(fn):
def retfn(x):
return fn(*x)
return retfn
标准 Python 2 库中是否已经有这样做的东西?我查看了 functools
,但找不到任何东西。
对于上下文,这是最近的一个用例:
print map(asterisk(operator.sub), [[-20, 20], [-20, 20], [32, 32]])
最佳答案
提供这个:
print map(asterisk(operator.sub), [[-20, 20], [-20, 20], [32, 32]])
你应该使用
from itertools import starmap
print starmap(operator.sub, [[-20, 20], [-20, 20], [32, 32]])
附言据我所知,Python 中没有针对此类功能的内置函数。前段时间,我在 Python 邮件列表中谈到缺少“应用”功能,这是更“一般”的问题。我认为,像 operator.apply(f, args)
这样的东西对很多情况都有好处。这种函数应用的函数表示也可以排除关于参数传递模型的参数。
关于python - 将 f(x) 转换为 f(*x) 的标准 Python 包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904374/