有一个semi-famous article written by Guido himself提示reduce()应该遵循dodo的方式并离开语言。它甚至被降级为Python 3(instead getting stuffed in the functools module)中的顶级功能。

对于许多其他功能性编程钉书钉( map 等),可以使用常见的清晰替代方案。例如,在大多数情况下,map()最好作为列表理解来编写。

我想知道的是,是否存在与reduce函数类似的“更多pythonic”替代方法。我有一定的函数式编程背景(尤其是ML),因此在考虑解决方案时,常常会想到reduce(),但是如果有更好的方法可以做到这一点(除非将reduce调用展开到for循环中),想知道。

最佳答案

正如Guido的链接文章所述,如果要避免reduce(),则应该只编写一个显式的for循环。您可以更换线

result = reduce(function, iterable, start)

经过
result = start
for x in iterable:
    result = function(result, x)

关于python - Python的reduce()替代品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9474412/

10-12 16:46
查看更多