221010 Python学习:匿名函数、高阶函数、常见实参高阶函数、迭代器、生成器
一、匿名函数
1)匿名函数:本质还是函数(除了定义函数的语法以外的函数相关内容都适用匿名函数 )
-
语法:
函数名 = lambda 形参列表: 返回值(返回值后面只能写一条语句)
-
相当于:(普通函数)
def 函数名(形参列表):
return 返回值
# 案列 :用匿名函数求任意两个数的和 sum1 = lambda num1, num2 = 10:num1 + num2 print(sum1(10, 20)) # 30 print(sum1(100, 200)) # 300 print(sum1(200)) # 210 # # 案例:写一个匿名函数求任意三个整数的个位数的和 sum2 = lambda num1, num2, num3: num1 % 10 + num2 % 10 + num3 % 10 print(sum3(13, 234, 31)) # 8
二、高阶函数和常见实参高阶函数
1)高阶函数定义
**高阶函数:**实参高阶函数和返回值高阶函数
-
实参高阶函数:参数是函数的函数
# x必须是不需要传参就可以调用的函数 def func5(x): # x = t1 print(x()) def t1(): print('abc') func5(t1) # abc t1是func5的参数,t1是个函数 # x必须是一个可以接受实参的函数,并且函数的返回值是数字 def func6(x): print(x(10, 20) + 30) def t2(num1, num2): return num1 * num2 func6(t2) # 230
-
返回值高阶函数:返回值是函数的函数
# func7是返回值高阶函数 def func7(): def func8(): print('abc') return func8()
2)函数的参数的确定方式
# x可以任何数据
def func1(x):
print(x)
# x可以传整数、浮点数、布尔、列表、字符串、元组
def func3(x):
print(x * 2)
# x可以传列表、字符串、元组、字典(其中有一个键是1)
def func3(x):
print(x[1])
# x只能传列表
def func4(x):
print(x.append(100))
3)常见的实参高阶函数🔺
注意:函数的参数如果是函数,提供实参的方式有两种:1.直接使用匿名函数;2.使用普通函数的函数名。
-
max、min、sorted(sort)
-
以max为例:
-
max(序列) — 直接比较序列中元素大小求最大值(常见的普通用法)
-
max(序列, key=函数) — 根据函数指定的比较规则,比较序列中元素的大小获取最大值
-
函数要求:
有且只有一个参数(代表序列中的每个元素)
需要一个返回值(返回值代表比较对象 :将参数看成列表中的元素,返回值对应的位置描述清楚比较对象和元素之间的关系)。
-
# 1) 求nums中值最大的元素 nums = [19, 23, 90, 34, 56, 78] print(max(nums)) # 2) 求nums中个位数最大的元素 nums
-