一:学习内容

lambda函数

map函数与reduce函数

filter函数

sorted函数

二:匿名函数-lambda

1.概念:不使用def这样的语句去定义函数,使用lambda来创建匿名函数

2.特点:

lambda只是一个表达式,函数体比def简单

实现的逻辑比较简单,主体是一个表达式,而不是代码块,lambda表达式中封装简单的逻辑

lambda函数有自己的命名空间,且不能访问自由参数列表之外的或者全局命名空间的参数

3.格式:

lambda 参数1,参数2,......,参数n:expression

4.lambda函数练习一

a=lambda x:x+1

a(1)

a(2)

lambda作为一个表达式,定义了一个匿名函数,上面的代码x为入口参数,x+1为函数体,用函数来表示为:

def g(x):

return x+1

5.lambda函数练习二

a=lambda x,y,z:(x+y)**z

print(a(1,2,3))

6.lambda函数练习三

def make_repeater(n):

return lambda s:s*n

twice=make_repeater(2)

twice('word')

twice(5)

上面的函数可以转换为:

twice=lambda s,n:s*n

twice('word',2)

twice(5,2)

7.lambda函数练习四

lambda表达式会返回一个函数对象,如果没有变量接受这个返回值,它很快就会被丢弃,也正是由于lambda只是一个表达式,所以它可以直接作为list、dict等成员

lists=[lambda s:s**3,lambda a:a**3]

data=lists[0]

data(2)

三:高阶函数-map和reduce

python内置了map()和reduce函数()

1.map()函数

格式:map(fn,lsd)

参数1是一个函数,fn只有一个参数

参数2是一个序列

功能:将传入的函数依次作用在序列中的每一个元素,并把结果作为新的Iterator返回

举例1:

#将单个字符转成对应字面量整数

def chr2int(chr):

return {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[chr]

list1 = ["2","1","6","5"]

#惰性列表,需要用list显示转换才会显示

res = map(chr2int,list1)

print(res)

print(list(res))

举例2:

#将整数元素的序列转为字符型的

#[1,2,3,4] ["1","2","3","4"]

a = [1,2,3,4]

print(list(map(str,a)))

2.reduce()函数

格式:reduce(fn,lsd)

参数1为函数,fn有两个参数

参数2位列表

功能:一个函数作用在序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素累计运算

举例1:

from functools import reduce

#求一个序列的和

def mySum(x,y):

return x+y

list2 = [1,2,3,4,5]

r = reduce(mySum,list2)

print(r)

3.map()函数和reduce()函数结合使用

举例1:

#将字符串转成对应字面量数字

def str2int(str):

def fc(x,y):

return x*10 + y

def fs(chr):

return {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[chr]

return reduce(fc,map(fs,list(str)))

a = str2int("13579")

print(a)

print(type(a))

四:高阶函数-filter()

1.filter()函数

格式:filter(fn,lsd)

参数1为函数

参数2位序列

功能:用于过滤序列,即把传入的参数依次作用于序列的每个元素,根据返回的是True还是False决定是否保留该元素

举例1:

list1 = [1,2,3,4,5]

#筛选条件,偶数保留

def func(num):

if num % 2 ==0:

return True

return False

#惰性序列,需要显示转换为列表才能展示数据

res = filter(func,list1)

print(list(res))

print(list1)

举例2:

data = [["姓名","年龄","爱好"],["tom",25,"无"],["hdd",26,"游泳"]]

def fun2(v):

v = str(v)

if v == "无":

return False

return True

for line in data:

s = filter(fun2,line)

print(list(s))

四:高阶函数-sorted()

用于排序

1.sorted()函数--普通排序

list1 = [4,7,2,6,3]

list2 = sorted(list1) #默认升序排序

print(list1)

print(list2)

2.sorted()函数--降序排序

list5 = [4,7,2,6,3]

#reverse 按升序排完以后反转

list6 = sorted(list5,reverse=True)

print(list5)

print(list6)

3.sorted()函数--字符串排序按ASCII码值排序

#字符串排序,比较ASCII码值

list7 = ["b","d","a","e"]

list8 = sorted(list7)

print(list7)

print(list8)

4.sorted()函数-自定义排序规则

#按绝对值大小排序

list3 = [4,-7,2,6,-3]

#key接受函数来实现自定义排序规则

list4 = sorted(list3,key=abs)

print(list3)

print(list4)

5.sorted()函数-自定义排序规则2

#按字符串长短排序,函数可以自己写

def myLen(str):

return len(str)

list9 = ["b333","d11111111","a22","e4322"]

list10 = sorted(list9,key=myLen)

print(list9)

print(list10)

python匿名函数调用_python3笔记十六:python匿名函数和高阶函数相关推荐

  1. python基础十 函数(下)匿名函数、高阶函数、闭包、装饰器

    目录 1. 匿名函数(lambda表达式) 2. 高阶函数 3. 函数的嵌套 4. nonlocal 关键字使用 5. 闭包 6. 装饰器 1. 匿名函数(lambda表达式) 简介 用一句话来表达只 ...

  2. python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数

    跟光磊学Python开发-匿名函数函数和高阶函数 跟光磊学Python开发-匿名函数函数和高阶函数跟光磊学Python开发 匿名函数 匿名函数就是函数定义时没有名字的函数,也称为匿名表达式. 普通函数 ...

  3. Python中的装饰器、迭代器、生成器、推导式、匿名函数和高阶函数

    文章目录 装饰器 迭代器 生成器 推导式 匿名函数 高阶函数 装饰器 闭包 介绍装饰器前先了解一下闭包,在Python中,一切皆对象(Object),函数(Function)也不例外,也是一个普通的对 ...

  4. Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()

    一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...

  5. Python3进阶--正则表达式、json、logging日志配置、数据库操作、枚举、闭包、匿名函数和高阶函数、time、datetime

    第一章 变量.常用循环体.代码结构.代码练习 第二章 列表.元组等数据结构.字符串驻留机制及字符串格式化操作 第三章 函数.面向对象.文件操作.深浅拷贝.模块.异常及捕获 第四章 项目打包.类和对象高 ...

  6. 嵌套函数,匿名函数,高阶函数

    目录 嵌套函数 匿名函数 高阶函数 嵌套函数 就是在函数里再定义一个函数 # 1,函数内部可以在定义函数 # 2,函数要想执行,必须要先被调用 def name1():print('kk')def n ...

  7. Go语言 一级函数 --- 匿名函数、高阶函数、闭包

    文章目录 导言 一级函数 一级函数是什么? 匿名函数 自定义函数类型 高阶函数 将 `x` 函数 作为 `y`函数 的参数 从 `x`函数 中,返回 `y`函数 闭包 一级函数的实际用法 原作者留言 ...

  8. 【Scala】使用Scala语言对匿名函数、高阶函数的定义以及详细解释(代码加注解)

    下面是匿名函数以及高阶函数相结合使用的代码: object FunDemo3 {/*** 匿名函数.高阶函数*/def main(args: Array[String]): Unit = {val a ...

  9. python开发基础04-函数、递归、匿名函数、高阶函数、装饰器

    匿名函数 lamba lambda x,y,z=1:x+y+z 匿名就是没有名字 def func(x,y,z=1):return x+y+z匿名 lambda x,y,z=1:x+y+z #与函数有 ...

最新文章

  1. MySQL面试题 | 附答案解析(十七)
  2. POJ 1170 Shoping Offers(IOI 95)
  3. bloc+rxdart解决代码混乱大问题
  4. C数据类型之基本类型
  5. AI+游戏:高效利用样本的强化学习 | 腾讯AI Lab学术论坛演讲
  6. 基于Mac环境搭建以太坊私有区块链进行挖矿模拟
  7. android保存字符到sd卡,android 保存TXT文件到SD卡方法
  8. 解决Redis之MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d
  9. 《C程序设计语言》笔记 (五) 指针与数组
  10. python flask服务器假死_python – Flask POST请求导致服务器崩溃
  11. IBM为私有云用户提供开源数据库访问
  12. apache OpenNLP简要介绍
  13. 网站资源:分享7个实用好玩的在线网站,值得收藏!
  14. python可以在多平台运行 体现了python语言的,Python 可以在多平台运行,这体现了 Python 语言的 特性。...
  15. Leetcode 523 连续的子数组和 前缀和 + 哈希表
  16. 正版Xshell免费使用
  17. 一曲微茫度余生 ——川剧《李亚仙》唱响香港西九戏曲中心
  18. python_操作MySQL 初解 之__类方法调用并 增-删-改-查
  19. windows 2003 系统优化参考
  20. 数据库的1000+篇文章总结

热门文章

  1. 物联网管理软件的设计
  2. mac安装telnet 超简单 复制telnet文件即可
  3. 学python的总结_为什么那么多自学Python的后来都放弃了,总结起来就这些原因
  4. Kotlin 普及度增加,代码质量比 Java 更高?
  5. 世界读书日 阿里人是这样看书的?
  6. nodejs 相关管理工具
  7. andriod 继承view定义自己的形状
  8. 深入理解LVS,还学不会算我输!
  9. 今日头条技术架构到底有多牛?
  10. JVM 最多支持多少个线程?