python - 使用 reduce() 的有用代码?

标签 python functional-programming

这里有没有人有任何有用的代码在 python 中使用 reduce() 函数?除了我们在示例中看到的通常的 + 和 * 之外,还有其他代码吗?

请参阅 Fate of reduce() in Python 3000通过 GvR

最佳答案

除了 + 和 * 之外,我发现它的其他用途是与 and 和 or,但现在我们有 anyall 来替换这些情况。

foldlfoldr 确实在 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/

相关文章:

python - 使用 Python,如何从另一个 GUI 调用 tkinter GUI?

python - 用 pandas csv 读取的文本定义正确的分隔符

functional-programming - 我如何证明 Coq 中的两个 Fibonacci 实现相等?

Swift 编译器挂起(可能是泛型参数的类型推断)

Scala 合并两个具有不同值类型的映射

scala - 在 Scala 中交换集合元素的好方法是什么?

python - 调整阈值 cros_val_score sklearn

python - Django 在渲染中传递多个变量

python - 如何纯粹用Python获取目录的子目录名称?

functional-programming - SICP - 阶乘的命令式与功能式实现