这里有没有人有任何有用的代码在 python 中使用 reduce() 函数?除了我们在示例中看到的通常的 + 和 * 之外,还有其他代码吗?
请参阅 Fate of reduce() in Python 3000通过 GvR
最佳答案
除了 + 和 * 之外,我发现它的其他用途是与 and 和 or,但现在我们有 any
和 all
来替换这些情况。
foldl
和 foldr
确实在 Scheme 中出现了很多......
这里有一些可爱的用法:
扁平化列表
目标:把[[1, 2, 3], [4, 5], [6, 7, 8]]
变成[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]
变成12345678
。
丑陋,缓慢的方式:
int("".join(map(str, [1,2,3,4,5,6,7,8])))
漂亮的reduce
方式:
reduce(lambda a,d: 10*a+d, [1,2,3,4,5,6,7,8], 0)
关于python - 使用 reduce() 的有用代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15995/