匿名函数的定义:
匿名函数这是指在python中使用lambda来创建函数,我们称之为匿名函数
匿名函数不在使用def来进行创建,而是使用lambda关键字来创建一个形式主义的函数
无参无返回值: lambda : 单行表达式或者函数调用
无参有返回值: lambda : 直接写返回值
有参无返回值: lambda 参数1,参数2,参数3… : 单行表达式或者函数调用
有参有返回值: lambda 参数1,参数2,参数3… : 直接写返回值
匿名函数的作用:
- 可以用匿名函数来实现标准函数的功能
- 可以作为一个函数的参数,将一个函数当在一个函数的参数传递,这个做法在别的技术中叫做委托
- (全局变量)一个函数只要被声明了,肯定在内存中存好了,
使用匿名函数传递只有当这个函数被传递的时候开始创建,内存分配,这个函数执行完毕
匿名函数就会像局部变量一样只在这个函数内部存在,函数执行完毕,匿名函数也被释放 - 还可以进行序列的排序,筛选…
匿名函数的特点:
1.匿名函数本质是一个表达式,不是代码块
2.匿名函数只能写一行代码
3.要使用关键字lambda
4.如果有返回数据,则不需要书写return关键字
5.lambda函数比def函数简单的多,
a.lambda函数不能使用while语句,for语句,if语句但是可以使用单行的表达式
b.lambda返回值不需要使用return
6.只能在lambda表达始终封装有限的逻辑进去
函数的本质:
函数本质是一个代码块,函数名的作用是针对代码块集合的引用,函数名可以理解为一个变量,变量里引用的是函数的整体代码
**匿名函数的使用场景:**一般在实际开发中有两种使用场合
1.定义一个简单的单行函数
2.一个函数要作为另一个函数的参数进行传递
列表表达式:轻量级的创建列表(快速创建一个有规律的列表)
# 将0-100中的数 3个3个分别装在元组里 将所有元组放在1个列表里
my_list=[] # 创建新的列表来表示0-100所有的数
for i in range(1,101): # 循环遍历0-100所有的数
my_list.append(i) # 将所有的数加在列表里
new_list=[] # 创建一个新的列表用来装3 3分装中每个元组第一个数的下标索引
for i in range(0,len(my_list),3): # 循环遍历每个元组第一个数的下标索引
self_list=my_list[i:i+3] # 用下标索引来对装着所有数字的列表进行切片
new_list.append(tuple(self_list)) # 将所得的数放入元组中
print(new_list)
# 列表推导式
my_list=[i for i in range(1,101)]
new_list=[tuple(my_list[i:i+3]) for i in range(0,len(my_list),3)]
print(new_list)