反pythonic map reduce实用程序
mr-streams的Python项目详细描述
mr streams
mr streams是一个python实用程序,用于组合iterable map reduce过滤器链
目标:
这个库的目标相对简单:
- 提供支持链接映射、减少、筛选操作的流合成语法
- stream对象的外观和感觉应该仍然像list/iterable
- 流应该有延迟计算流的选项
- 支持未来有关组合方式的更改
发音:
- “溪流先生”好玩
- “M-R-streams”听起来很专业
支持的操作
map
-使用内置的部分求值选项将函数应用于iterable中的值。fromoperatorimportadd[*mr(range(10)).map(add,1)]>>[1,2,3,4,5,6,7,8,9,10]
filter
-对链中发出的值应用布尔函数。如果条件为true,则值将在链的下一步发出。is_even=lambdax:x%2==0[*mr(range(10)).filter(is_even)]>>[0,2,4,6,8]
reduce
-reduce遍历所有对象,并使用reduce函数来减少它们。mr(range(10)).reduce(sum)>>45
take
-限制流中发出的值的数目。[*mr(range(10)).take(3)]>>[0,1,2]
tap
-将函数被动地应用于流,而不更改发出的值。mr(range(4)).tap(print).reduce(sum)>>0>>1>>2>>3>>6
drain
-运行耗尽流的无操作迭代。mr(range(4)).tap(print).drain()>>0>>1>>2>>3
chunk
-将流中的项分组成大小为n
mr(range(4)).chunk(2).tap(print).drain()>>[0,1]>>[2,3]