有一个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/