Python 高阶函数

map() 函数

  根据提供的函数对指定序列做映射。序列中的每一个元素调用 function 函数,可以是一个或多个序列,函数返回一个迭代器。

>>> map(lambda x:x ** 2,[1,2,3])
<map object at 0x000000000386C080>
>>> [i for i in map(lambda x:x ** 2,[1,2,3])]
[1, 4, 9]
>>> [i for i in map(lambda x,y:x+y,[1,2,3],[10,20,30])]
[11, 22, 33]

reduce() 函数

  对参数序列中的元素进行累积。序列前两个元素调用 function 函数运算,得到的结果再与第三个元素进行运算,以此类推。函数返回值与初始参数 initializer 类型相同。

>>> from functools import reduce
>>> reduce(lambda x,y:x+y,[1,3,5])
9
>>> reduce(lambda x,y:x+y,['1','3','5'],'字符串:')
'字符串:135'

zip() 函数

  将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。函数返回一个迭代器。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。

>>> a = [1,2,3]
>>> b = ['a','b','c']
>>> c = [10,20,30,40]
>>> zip(a,b)
<zip object at 0x000000000386AE48>
>>> [i for i in zip(a,b)]
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> [i for i in zip(a,c)]
[(1, 10), (2, 20), (3, 30)]
>>> [i for i in zip(*zip(a,c))]
[(1, 2, 3), (10, 20, 30)]
posted @ 2019-05-15 10:30  PIPO2  阅读(180)  评论(0编辑  收藏  举报