python -- itools.functoolz,itoolz.dicttoolz

2019.9.26:

 

学习内容:functoolz、dicttoolz


 二、functoolz:

1、pipe(data, *funcs):

  pipe(data,f,g,h) 等价于 h(g(f(data)))

  类似于UNIX的管道一样。

 

2、juxt(*funcs)(data):

  接受几个函数并返回一个元组,保存data分别在这几个函数的结果。方便多个函数的比较。

  

 

3、do(func, x):

  用于记录进入func的输入,返回列表。

 

4、curry(*args, **kwargs):

  两种用法,可以作为装饰器,在函数定义时声明。目的是允许这个函数可以不用一次性传入全部参数。类似于偏函数使用

 

5、flip(func, para):

  针对内置函数的curry

 

6、excepts(exc, func, handler = <function return_none>):

  用于捕获一场并分派给处理程序。就是一个function的try / except块 

  例如: list.index(a) 方法是给a返回在list的位置,如果没有就发起一个异常。


 

三、dicttoolz:

1、merge(*dicts, **kwargs):

  合并两个字典,重复key的以右边字典为准,超好用~

 

2、merge_with(func,*dicts, **kwargs):

  重复key会按照func规则进行value的处理 

 

3、valmap(func,d, factory = <type='dict'>):

  对字典的value做map映射。

 

4、keymap(func,d, factory = <type='dict'>):

  对字典的key做map映射。

 

5、itemmap(func,d, factory = <type='dict'>):

  对字典的key和value做映射,通常为reverse翻转键值。

 

 

7、valfilter(func,d, factory = <type='dict'>):

  对value按func规则做过滤。

 

8、keyfilter(func,d, factory = <type='dict'>):

  对key按func规则做过滤。

 

9、keyfilter(func,d, factory = <type='dict'>):

  同时对key和value按func规则做过滤。

 

10、assoc(dict,key,value, factory = <type='dict'>):

  原字典不变,返回的是新字典。给出的key如果dict有,则赋予新value,无则新增键值对

 

11、dissoc(dict,*key):

  返回一个删除了给定key的新字典。原字典不动。

 

posted @ 2019-09-26 11:54  Marvin_Tang  阅读(378)  评论(0编辑  收藏  举报