sff*_*ffc 4 python functional-programming
在Python中,如果我想使用显式函数式编程来总结一个列表,我可以这样做
>>> import operator
>>> reduce(operator.add, [3, -1, 2])
4
Run Code Online (Sandbox Code Playgroud)
Mathematica 比 Python 更接近纯函数式语言,将其称为Fold而不是reduce,但结果是相同的。
In[1]:= Fold[Plus, {3, -1, 2}]
Out[1]= 4
Run Code Online (Sandbox Code Playgroud)
所以现在,在 Mathematica 中,如果我想在迭代过程中的每一步获得“折叠”的结果,我可以使用函数FoldList。
In[2]:= FoldList[Plus, {3, -1, 2}]
Out[2]= {3, 2, 4}
Run Code Online (Sandbox Code Playgroud)
如何在 Python 中获取这样的列表(或者最好是迭代器)?一般来说,这个函数操作有名字吗?
我找到了正确的函数:在Python中,它被称为accumulate。
>>> from itertools import accumulate
>>> list(accumulate([3, -1, 2], operator.add))
[3, 2, 4]
Run Code Online (Sandbox Code Playgroud)
它似乎只在Python 3中可用。但是现在每个人都已经升级了,对吧?:)
| 归档时间: |
|
| 查看次数: |
1130 次 |
| 最近记录: |