以python内置pow()函数为例。
pow()
xs = [1,2,3,4,5,6,7,8] from functools import partial list(map(partial(pow,2),xs)) >>> [2, 4, 8, 16, 32, 128, 256]
但是我如何将xs提高到2的幂?
要得到 [1, 4, 9, 16, 25, 49, 64]
[1, 4, 9, 16, 25, 49, 64]
list(map(partial(pow,y=2),xs)) TypeError: pow() takes no keyword arguments
我知道列表理解会更容易。
根据文档, 不能 这样做(强调我自己):partial __
partial
部分参数 在 最左边的 将被前置到位置参数位置参数
部分参数
在 最左边的 将被前置到位置参数位置参数
您总是可以“修复”pow以使用关键字args:
pow
_pow = pow pow = lambda x, y: _pow(x, y)