将常用函数式编程操作作为方法注入可iterable对象的库。

funcip的Python项目详细描述


作为方法注入通用函数式编程操作的库 变成可接受的物体。目前,它注射 filter, flat_map, foldl, foldr, map,reduce操作 使用sum, count, any, all, max, min,zip操作。

获取库

可以通过pip install funcipy安装库。同样,它 可以通过pip uninstall funcipy卸载。

用法

当您希望将公共函数编程操作作为 方法进入对象obj,调用funcipy.funcify函数 obj作为参数。如果obj是iterable,那么函数将 返回一个对象,该对象

  1. 提供与输入对象相同的接口,并且
  2. 将函数式编程操作作为方法。

否则,obj将按原样返回。

下面是一些调用示例。

fromfuncipyimportfuncifyimportfunctoolsimportitertoolsimportoperatori=range(5,15)print("Map function: "+' '.join(map(str,i)))tmp1=funcify(i)print("Map function applied to funcified object: "+' '.join(map(str,tmp1)))print("Map method: "+' '.join(tmp1.map(str)))print("Map and Filter Method chaining: "+' '.join(tmp1.filter(lambdax:x%2).map(str)))print("Reduce function: "+str(functools.reduce(operator.add,i,5)))print("Reduce method: "+str(tmp1.reduce(operator.add,5)))print("Reduce function: "+str(functools.reduce(operator.sub,i)))print("Foldl method: "+str(tmp1.foldl(operator.sub)))print("Foldr method: "+str(tmp1.foldr(operator.sub)))print("Flat-map operation: "+' '.join(itertools.chain.from_iterable(map(str,i))))print("Flat-map method: "+' '.join(funcify(i).flat_map(str)))print("Sum function: "+str(sum(i)))print("Sum method: "+str(tmp1.sum()))print("Count function: "+str(sum(1for_infilter(lambdax:x>10,i))))print("Count method: "+str(tmp1.count(lambdax:x>10)))print("Max function: "+str(max(i)))print("Max method: "+str(tmp1.max()))print("Min function: "+str(min(i)))print("Min method: "+str(tmp1.min()))print("Any function: "+str(any(map(lambdax:x>10,i))))print("Any method: "+str(tmp1.map(lambdax:x>10).any()))print("All function: "+str(all(map(lambdax:x>10,i))))print("All method: "+str(tmp1.map(lambdax:x>10).all()))j=range(0,7)print("Zip function: "+' '.join(map(str,zip(i,j))))print("Zip method: "+' '.join(tmp1.zip(j).map(str)))

归因

版权所有(c)2017,Venkatesh Prasad Ranganath

根据BSD 3条款“新”或“修订”许可 (https://choosealicense.com/licenses/bsd-3-clause/

作者:venkatesh prasad ranganath

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaGCP:一个VM可以位于具有相同地址的不同网络上吗?   java查找安卓中第一个数组的第二个数组中存在的元素的索引   java摄像头活动不工作,设置参数失败   用于python的Base64转换的Java等效代码   为什么JPA/Hibernate在我尝试运行@Query时抛出“java.lang.NegativeArraySizeException:1”?   如何在ubuntu for java的终端上设置路径?   java为什么这两个IP不同?   java JPA:如何将本机查询结果集转换为POJO类集合   java如何在|(12)|(23)中用数字拆分字符串   异常处理如何让程序在达到Java目标后停止运行   java如何不添加以特定字符开头的元素   java如何通过字符串获得swing按钮名称?   java如何在响应不成功时读取改装中的错误体?   java*更新*现在我的程序可以编译但不运行了?