- 匿名函数的意思就是不用
def
定义,并且这个函数也没有名字
注意 lambda是个表达式(一行的是表达式),不是代码块 - lambda也有形参,并且只能访问,并且lambda只能访问自己的形参数据
- 封装一个函数做加法运算,和普通函数和lambda对比
def add(x, y):
return x + y
print(add(2, 3))
- 把普通函数改成lambda表达式封装
res = lambda x, y: x + y
print(res(3,4))
E:\python3810\python.exe D:/py/test/gao/匿名函数.py
7
- 普通函数和lambda分支结构使用对比
- 普通函数
def func(sex):
if sex == "男":
return "sb"
return "nice"
res = func("男")
print(res)
- lambda表达式
lambda 参数列表: 真区间 if 表达式判断 else 假区间
res = lambda sex : "sb" if sex == "男" else "nice"
print(res("fdasfda"))
4.把lambda 作为参数传递普通函数和lambd对比
- 普通函数
def map_list(fn, lis01):
result = []
for item in lis01:
i = fn(item)
result.append(i)
return result
lis01 = [1, 2, 3, 4]
def f(x):
return x * 2
lis01= map_list(f, lis01)
print(lis01)
- lambda表达式作为参数
def map_list(fn, lis01):
result = []
for item in lis01:
lis01 = fn(item)
result.append(lis01)
return result
lis01 = [1,2,3,4]
lis01 = map_list(lambda x: x * 2, lis01)
print(lis01)
5.把lambda 作为参数传递,把列表中的数据变成字符串
def map_list(fn, lis01):
result = []
for item in lis01:
lis01 = fn(item)
result.append(lis01)
return result
lis01 = [1,2,3,4]
lis01 = map_list(lambda x: str(x), lis01)
lis01 = map_list(str, lis01)
print(lis01)