我试图找到列表的长度。
In [77]: reduce(lambda acc, x: acc + 1, [x for x in range(8)])
Out[77]: 7
In [78]: reduce(lambda acc, x: acc + 1, [x for x in range(8)], 0)
Out[78]: 8
但似乎我需要传递初始值才能正常工作。为什么?
答案 0 :(得分:2)
第一个元素从第一个元素(0)开始,并为其他七个元素添加1。第二个从0开始,并为八个元素中的每一个添加1。
答案 1 :(得分:1)
如果你没有传递一个起始值,列表的第一个值将被用作起始值,并且永远不会作为x
参数传递给你的lambda函数,所以实际上你得到{{1作为你的结果。