400-650-7353
您所在的位置:首页 > IT干货资料 > python > 【Python基础知识】Python高阶函数

【Python基础知识】Python高阶函数

  • 发布: python培训
  • 来源:python干货资料
  • 2020-11-25 10:59:12
  • 阅读()
  • 分享
  • 手机端入口
(3)map()函数

map()函数的语法格式如下:

map(func, seq)

map()函数中有两个参数,第一个参数是函数func,第二个参数是序列seq。map()是一个映射函数,根据提供的函数对指定的序列做映射。map()函数是以序列seq中的每一项作为参数依次调用函数func,返回包含每次函数func返回值的map对象。

map()函数的第一个参数函数func可以是内建函数,也可以是自定义函数,甚至可以是匿名函数;第二个参数序列seq可以是列表、元组、字符串等。

例如,map()函数的第一个参数是内建函数,第二个参数是列表:

  1. >>> alist = [1, -2, -3
  2. >>> print(list(map(abs, alist))) 
  3. [123

在上述程序中,abs是绝对值函数。由于map()函数的返回值是map对象,因此,使用list()方法将其转换成列表。

例如,map()函数的第一个参数是自定义函数,第二个参数是元组:

  1. >>> def f(x): 
  2. ...     return x ** 2 
  3. ... 
  4. >>> print(list(map(f, (24710)))) 
  5. [41649100

上述程序也可以改成匿名函数的形式:

  1. >>> print(list(map(lambda x: x ** 2, (24710)))) 
  2. [41649100

(4)filter()函数

filter()函数的语法格式如下:

filter(func, seq)

filter()是一个过滤器函数,用于过滤掉序列中不符合条件的项。filter()函数以序列seq中的每一项作为参数依次调用函数func进行判断,函数func返回True或False,将返回值为True的项放进filter对象中返回。

例如,过滤掉列表[7,10,13,16,17,19,21,22,26,28,29]中的奇数项,只输出偶数项:

  1. >>> def fun(x): 
  2. ...     if x % 2 == 0
  3. ...         return x 
  4. ... 
  5. >>> alist = [710131617192122262829
  6. >>> print(list(filter(fun, alist))) 
  7. [1016222628

(5)reduce()函数

reduce()函数的语法格式如下:

reduce(func, seq[, init])

其中,init是一个可选参数,表示初始值。注意,在使用reduce()函数前要导入from functools import reduce。

reduce()是一个累计函数,其实现原理:如果存在init参数,即有初始值,那么将初始值和序列seq的第1项作为参数传值给函数func进行运算,再将返回值与序列seq的第2项作为参数传值给函数func进行运算……这样依次将返回值与序列seq的下一项作为参数传值给函数func进行运算,直到序列最后一项运算完为止,返回最终的运算结果。如果不存在init参数,那么将序列seq的第1项和第2项作为参数传值给函数func进行运算,再将返回值与序列seq的第3项作为参数传值给函数func进行运算……这样依次将返回值与序列seq的下一项作为参数传值给函数func进行运算,直到序列最后一项运算完为止,返回最终的运算结果。

例如,初始值为100,对列表[1,2,3]使用reduce()函数进行累乘:

  1. >>> from functools import reduce 
  2. >>> alist = [123
  3. >>> def fun(x,y): 
  4. ...     return x * y 
  5. ... 
  6. >>> print(reduce(fun, alist, 100)) 
  7. 600 

上述程序的功能等价于如下代码:

  1. >>> alist = [1,2,3
  2. >>> num = 100 
  3. >>> sum = alist[0] * num 
  4. >>> for i in range(len(alist) -1): 
  5. ...     sum *=  alist[i+1
  6. ... 
  7. >>> print(sum) 
  8. 600 

 

文章“【Python基础知识】Python高阶函数”已帮助

>>本文地址:https://www.ujiuye.com/zhuanye/2020/61386.html

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • JavaJava
  • Linux云计算Linux
  • Python+人工智能Python
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路UI/UE设计UI设计
  • VR/AR游戏开发VR/AR
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道fast track

近期开班时间TIME