首页 > 编程语言 > 详细

Python 高阶函数

时间:2019-05-21 16:42:41      阅读:109      评论:0      收藏:0      [点我收藏+]

map() 函数

语法:map(function,iterable,...)

根据提供的函数对指定序列做映射。序列中的每一个元素调用 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]
>>> map(lambda x,y:x+y,[1,2,3],[10,20,30])
<map object at 0x000000000386C080>
>>> [i for i in map(lambda x,y:x+y,[1,2,3],[10,20,30])]
[11, 22, 33]

reduce() 函数

语法:reduce(function,iterable[,initializer])

对参数序列中的元素进行累积。序列前两个元素调用 function 函数运算,得到的结果再与第三个元素调用 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],2)
11
>>> reduce(lambda x,y:x+y,[1,3,5],字符串:)
字符串:135

zip() 函数

语法:zip([iterable,...])

将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。函数返回一个迭代器。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 操作符,可以将元组解压为列表。

>>> 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)]
>>> zip(*zip(a,c))
<zip object at 0x000000000386F988>
>>> [i for i in zip(*zip(a,c))]
[(1, 2, 3), (10, 20, 30)]

 

Python 高阶函数

原文:https://www.cnblogs.com/yutb/p/10900342.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!