除了 + 和 * 之外,我发现它的其他用途是与 and 和 or,但现在我们有any
and all
来替换这些案例。
foldl
and foldr
确实在计划中出现了很多...
这里有一些可爱的用法:
压平列表
目标:转弯[[1, 2, 3], [4, 5], [6, 7, 8]]
into [1, 2, 3, 4, 5, 6, 7, 8]
.
reduce(list.__add__, [[1, 2, 3], [4, 5], [6, 7, 8]], [])
数字的数字列表
目标:转弯[1, 2, 3, 4, 5, 6, 7, 8]
into 12345678
.
丑陋、缓慢的方式:
int("".join(map(str, [1,2,3,4,5,6,7,8])))
Pretty reduce
way:
reduce(lambda a,d: 10*a+d, [1,2,3,4,5,6,7,8], 0)