1.高阶函数介绍:

  • 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足其一,则为高阶函数。
  • 常见的高阶函数:map()、sorted()、filter()等也是python内置的函数,也可以自定义高阶函数,其实装饰器也算一种高阶函数。

2.内置高阶函数:

(1)map(function,iterable) 函数

  • function:接收一个函数
  • iterable:接受一个可迭代对象(字符串,元组,列表,字典)
  • 作用:可将迭代对象 __iter1 依次代入这个函数,然后将结果组成一个列表返回
"""
#将列表 a 中的元素全部转换成字符串
a = [1,2,3,4] b = map(str,a)
print(list(b))
""" """
#将下面stu列表中的姓氏进行首字母大写操作
stu = ["ZHAo","qIan","SUN","Li"]
#自定义首字母大写方法
def NameStyle(name):
return name[0].upper() + name[1:].lower()
#使用map()函数,传入参数为,自定义的函数NameStyle名称,和可迭代对象stu
stu2 = map(NameStyle,stu)
print(list(stu2))
"""

(2)filter(function,iterable) 函数

  • function:接收一个函数
  • iterable:接受一个可迭代对象
  • 作用:将可迭代对象依次传入该函数,通过返回值是 True 或 False 决定去留(过滤或筛选)
"""
#找出列表 strs 中的所有字符串
strs = ["a","b","c",1,2]
def get_str(x):
if isinstance(x,str): #判断传入的元素 x 是否是 str 型
return True
new_strs = filter(get_str,strs)
print(list(new_strs))
""" """
#找出列表中http链接
http = ["http://www.baidu.com","apple","http://weibo.cn","中国人"]
def ht(param):
if param.startswith("http"):
return True all_http = filter(ht,http)
print(list(all_http))
"""

(3)sorted(iterable,key,reverse) 函数

  • iterable:可迭代对象
  • key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序
  • reverse:排序规则,reverse = True 降序 , reverse = False 升序(默认)
  • 返回值:返回重新排序的列表
"""
#根据成绩排序
grade = [("Tom",75),("Jerry",92),("Apple",66),("Ben",88)] def get_grade(x):
return x[1] print(sorted(grade,key=get_grade))
""" """
# 根据字符串长度排序
name = ["Tom","Jerry","Apple","Ben"] def len_name(x):
return len(x) print(sorted(name,key=len_name))
"""

3.嵌套函数

  • 函数内部再进行定义函数成为嵌套函数
def foo():
msg = "China"
def fo():
return msg
return fo()
print(foo())

4.匿名函数

  • 特点:

    • 只能有一个表达式
    • 匿名函数只有一个参数
    • 匿名函数也是一个函数对象,可以赋值给一个变量
    • 经常配合高阶函数使用
#计算出列表中所有值的平方
li = [1,2,3,4,5]
"""
#高阶函数用法
def foo(x):
return x * x
print(list(map(foo,li)))
"""
#匿名函数用法
"""
print(list(map(lambda x: x * x,li))) #第一个 x 为参数,x * x 为计算逻辑
"""
#匿名函数赋值给变量 f

f = lambda x: x * x
print(f(2))
#求出 1-20 的所有奇数
J = list(filter(lambda x: x % 2 != 0,range(1,20)))
print(J)

python(内置高阶函数)的更多相关文章

  1. Python内置高阶函数map()

    map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于lis ...

  2. 匿名函数python内置高阶函数以及递归

    匿名函数 python定义一个函数通常使用def关键词,后面跟函数名,然后是注释.代码块等. def func(): '''注释''' print('from func') 这样就在全局命名空间定义了 ...

  3. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

  4. python面试_总结01_概念和内置高阶函数

    - 简答题 1.请谈谈Python中is 和 == 的区别(代码演示) is用于比较两个变量是否引用了同一个内存地址,is表示的是对象标识符(object identity),作用是用来检查对象的标识 ...

  5. reduce内置高阶函数求和

    >>> def f(x, y): ... return x+y ... >>> reduce(f, a, ) >>> reduce(lambda ...

  6. Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted

    1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...

  7. Python中的高阶函数与匿名函数

    Python中的高阶函数与匿名函数 高阶函数 高阶函数就是把函数当做参数传递的一种函数.其与C#中的委托有点相似,个人认为. def add(x,y,f): return f( x)+ f( y) p ...

  8. python字符串反转 高阶函数 @property与sorted(八)

    (1)字符串反转 1倒序输出 s = 'abcde' print(s[::-1]) #输出: 'edcba' 2 列表reverse()操作 s = 'abcde' lt = list(s) lt.r ...

  9. Python入门篇-高阶函数

    Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数  1>.First Class Object 函数在Python中是一等公民 函数也 ...

随机推荐

  1. C语言实现双向链表

    目前我们所学到的链表,无论是动态链表还是静态链表,表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表(或单链表). 虽然使用单链表能 100% 解决逻辑关系为 & ...

  2. Python Requests-学习笔记(7)-Cookies

    如果某个响应中包含一些Cookie,你可以快速访问它们: url = 'http://example.com/some/cookie/setting/url' r = requests.get(url ...

  3. 06-jmeter参数化(函数对话框使用)

    概念: 1.变量命名的规则:字母.下划线开头,可包含数字,严格区分大小写 2.配置元件:用户定义的变量-------值是不变化的 用户命名的参数--------可以动态获取的并传参的 jmeter函数 ...

  4. lr集合点

    集合点:rendezvous point =====>>loadrunner的虚拟用户中,并发concurrent\ 同时simultaneous的区别: concurrent并发:指虚拟 ...

  5. 惊呆了,Servlet Filter和Spring MVC Interceptor的实现居然这么简单

    前言 创建型:单例模式,工厂模式,建造者模式,原型模式 结构型:桥接模式,代理模式,装饰器模式,适配器模式,门面模式,组合模式,享元模式 行为型:观察者模式,模板模式,策略模式,责任链模式,状态模式, ...

  6. python白帽子/黑客/实战编程教程

    Python搜索爬虫抓取超高清视频教程_第一期Python搜索爬虫抓取超高清视频教程_第二期Python搜索爬虫抓取视频教程_第三期Python搜索爬虫抓取视频教程_第四期Python搜索引擎爬虫抓取 ...

  7. Unity 游戏框架搭建 2019 (二十九) 方法所在类命名问题诞生的原因

    我们在整理阶段解决了一些意外的问题.但是这些问题仅仅只是被解决而已,我们并没有去思考过这些问题是为什么产生的?以及在以后我们如何去避免这些问题的产生? 方法所在类的命名问题,最后我们通过方法分类解决了 ...

  8. 深圳博客第一篇(Json)

    JSON JSON是纯文本 JSON具有自我描述性 JSON具有层级结构 JSON可通过javascript进行解析 JSON数据可使用Ajax进行传输 JSON对象的取值 var myObj = { ...

  9. testNG 常用的注解

    常用注解介绍: @BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次 @AftereSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次 @BeforeClass  ...

  10. 被折磨致死的heroku——herku部署

    最近一直在弄heroku部署上线,但是因为中国墙和英语问题,一直弄不好,,很是烦躁,所有暂时先放弃了,但是因为查询了一些资料,有些文档链接有必要放到下面,方便各位和自己查看: heroku官方网站: ...