在Python 3中,
reduce
函数如何使用三个参数而不是两个?对于两个参数的情况,它的工作方式为:tup = (1,2,3)
reduce(lambda x, y: x+y, tup)
我理解这个问题。它只是将tup
中所有元素相加。但是,如果您像下面这样给reduce函数三个参数,则不同:
tup = (1,2,3)
reduce(lambda x, y: x+y, tup, 6)
这将给你一个值为12
的结果。我查阅了Python3的文档,它表示第三个参数是一个初始化器。那么,如果没有插入第三个参数,那默认的初始化器是什么?
next
是什么作用? - chanpkrnext()
函数文档;从迭代器中检索下一个值。如果iterable
是元组,则是第一个索引。 - Martijn PietersNone
作为第三个参数。 - georg_sentinel = object()
,然后在函数签名中使用initializer=_sentinel
,接着使用if initializer is _sentinel:
。但为了提高可读性,选择了None
。 - Martijn Pieters