map,zip,reduce,lambda函数学习笔记
2017-04-23 18:50
337 查看
上面4个函数,虽然都知道具体的含义,但是有时候很少会想起来用这几个函数。用的恰到好处的话,确实使代码看起来更简洁易懂。 如果有个列表字典 dic1 = [{'a':'A'},{'b':'B'},{'d':'D'},{'c':'C'}] 想要把这个列表中的字典全部合并的话,可以用以下代码实现
b = dic1[0] for i in range(1,4): b = dict(b,**dic1[i]) ---------------------------------- 如果用reduce,map和lambda函数结合就更简洁了 dic = {} for i in map(lambda x:dic.update(x),dic1): print(dic) out: {'a': 'A'} {'a': 'A', 'b': 'B'} {'a': 'A', 'b': 'B', 'd': 'D'} {'a': 'A', 'b': 'B', 'd': 'D', 'c': 'C'} 如果用reduce就更加简洁, dic = OrderedDict() #如果你想要输出是输入的顺序,字典是无序的,虽然上面的没有有序字典看似也是有序,但是我用不同的ide结果就是不同 reduce(lambda x,y:dic.update(y),dic1,{}) #from functools import reduce out : dic = {'a': 'A', 'b': 'B', 'd': 'D', 'c': 'C'}
map(lambda x:dic.update(x),dic1) reduce和map函数接收的参数比较相似,接收一个函数和一个列表(reduce可以有第3个参数作为计算的初始的值,如果没有,就以list中的中的第一个元素作为x)。下面把reduce拆解就能明白了。 reduce(lambda x,y:dic.update(y),dic1,{}) ==> lambda x,y:dic.update(y) 其实就等于 def fun(x,y): return dic.update(y),x 所以,第一步执行x = {},y = dic1[0]代入到 fun({},dic1[0]) ,dic 就变成 {'a': 'A'},然后在fun(fun({},dic1[0]),dic1[1]),一直计算到最后一个 #reduce( func, [1, 2,3] ) = func( func(1, 2), 3)
zip函数一般将2个列表合并
for i in zip([1,2,3],[4,5]):
print(i)
out:
(1, 4)
(2, 5)
相关文章推荐
- Python学习笔记(5):lambda,filter,map,reduce,zip用法整理
- python中的zip、map、reduce 、lambda函数的使用。
- (转)scala学习笔记(8): 列表的map,flatMap,zip和reduce
- python几个重要的函数(lambda,filter,reduce,map,zip) 一、匿名函数lambda lambda argument1,argument2,...argumentN :e
- [Python学习笔记-002] lambda, map, filter and reduce
- python几个重要的函数(lambda,filter,reduce,map,zip)
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- Map-Reduce体系结构学习笔记一
- python的lambda表达式 内建函数filter map reduce
- [Python] 函数lambda(), filter(), map(), reduce()
- hadoop学习笔记之Map-Reduce
- 【python】filter,map,reduce和lambda函数介绍
- Python学习笔记---理解zip()函数
- Python3.3 学习笔记4 - 函数 - lambda
- python中的lambda匿名函数以及针对序列的内建函数map、filter和reduce
- Python函数式编程学习:lambda, map, reduce, filter
- [Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化
- map/reduce 学习笔记
- [Python] 内置序列函数之 filter, map, reduce, zip
- [Python] 函数lambda(), filter(), map(), reduce()