标签:lambda init 问题 语言 方式 关键字 func python seq
Python的常用高阶函数reduce中有一个参数initial
,用作初始值
r = reduce(lambda x, y: x * y, [x for x in range(1, 3)], 10)
这样将10代入参数x
和整个列表做连续运算
但是看了下reduce
函数时这样定义的
def reduce(function, sequence, initial=None):
pass
于是试着把initial
以关键字参数的方式使用
r = reduce(lambda x, y: x * y, [x for x in range(1, 3)], initial=10)
程序报错提示reduce() takes no keyword arguments
查了下资料,大概是因为Python底层API是调用的C语言,没写函数没有实现Python特性,只能靠位置判断参数,这也是蛮坑的一点记录一下
reduce() takes no keyword arguments
标签:lambda init 问题 语言 方式 关键字 func python seq
原文地址:https://www.cnblogs.com/dream08/p/12994889.html