【一】匿名函数的定义
- 在 Python 里有两类函数:
- 用
def
关键词定义的正规函数 - 用
lambda
关键词定义的匿名函数
- 用
lambda 参数: 表达式
lambda
:定义匿名函数的关键词。- 函数参数它们可以是位置参数、默认参数、关键字参数
- 表达式,输入函数参数,输出一些值,表达式本身结果就是返回值
【二】匿名函数的使用
【1】有名函数
def add(x):
return x + x
print(add(5)) # 10
【2】单参数匿名函数
def add(x):
return x + x
add = lambda x: x + x
print(add(6)) # 12
【3】多参数匿名函数
def add(x, y):
return x * y
# 这是一个匿名函数 变量名 = lambda 参数1,参数2 : 返回值
res = lambda x, y: x * y
print(res(5, 6)) # 30
【4】多参数解包
def add(*args):
return sum(args)
# 这是一个匿名函数 变量名 = lambda 传进去的参数 : 内置函数sum(计算参数的和)
# *args:在形参中表示一个元祖 (1,2,3) 在实参中表示将元祖拆解成一个个参数传入到函数中
add_lba = lambda *args: sum(args)
print(add_lba(1, 2, 3, 4, 5)) # 15
【5】高阶函数
- 常用在高阶函数
(1)过滤函数(filter())
- filter(函数, 可迭代对象) 过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
odd = lambda x: x % 2 == 1
templist = filter(odd, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(templist)) # [1, 3, 5, 7, 9]
(2)映射函数(map())
- map(函数, 可迭代对象) 根据提供的函数对指定序列做映射。
m1 = map(lambda x: x ** 2, [1, 2, 3, 4, 5])
print(list(m1)) # [1, 4, 9, 16, 25]
m2 = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print(list(m2)) # [3, 7, 11, 15, 19]
标签:函数,Python,add,匿名,参数,print,lambda
From: https://www.cnblogs.com/ligo6/p/18180002