匿名函数
定义
匿名函数是指在python中使用lambda来创建函数,称之为匿名函数
创建函数不在使用def创建,而是使用lambda关键字创建一个形式主义的函数
匿名函数的定义
格式
lambda 参数1,参数2,参数3... : 单行表达式 或者 函数调用
匿名函数的作用
-
可以通过匿名函数来实现标准函数的功能
-
可以作为一个函数的参数进行传递,将一个函数当成另一个函数的参数传递进另一个函数,这个做法在C#或其他技术中叫做委托
-
(全局变量)一个函数只要被声明了,肯定在内存中存放好了,程序运行函数即被创建,内存被分配。直到整个文件执行结束才会被处理
使用匿名函数传递只有当这个函数被传递的时候开始创建,内存分配,这个函数执行完毕,匿名函数就会像局部变量一样只在这个函数内部存在,函数执行完毕,匿名函数也被释放
匿名函数的特点
- 匿名函数本质是一个表达式,不是代码块
- 匿名函数只能写一行代码
- 使用关键字lambda
- 如果有返回值数据则不需要书写return关键字
- lambda的函数要比def函数简单的多
- lambda中不能使用if语句、while语句、for循环,但是可以使用单行的表达式或函数调用
- lambda的返回结果不需要使用return
- lambda只能写一行,lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去
本质
函数本质是一个代码块集合,而函数名的作用是针对代码块集合的一个引用
函数名可以理解为一个变量,这个变量里面引用的是函数主体所有代码
列表推导式
作用
轻量级循环创建列表(快速的创建一个有规律的列表)
高阶函数
map/reduce/filter
map用法
map会根据提供的函数对指定序列做映射
方法中第一个参数是function,以参数序列中的每一个元素进行调用该function函数,最终返回一个map对象
这个map对象其本质是每个元素执行完function之后由重新组成的列表
reduce用法
reduce函数会对参数序列中元素进行累计
函数将一个数据集合中的所有数据进行下列操作:
1. 用传递的reduce中的函数function(有两个参数),先对集合中的第1、2个元素进行操作
2. 得到的结果再与第三个数据用function函数运算,最后得到一个结果
filter用法
filter方法用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象,如果要转换为列表可以使用list()来转换
该方法接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回True或False,最后将返回True的元素放到新的序列中