5.匿名函数lambda


  • 匿名函数的意思就是不用def定义,并且这个函数也没有名字
    注意 lambda是个表达式(一行的是表达式),不是代码块
  • lambda也有形参,并且只能访问,并且lambda只能访问自己的形参数据
  1. 封装一个函数做加法运算,和普通函数和lambda对比
def add(x, y):
    return x + y


print(add(2, 3))
  1. 把普通函数改成lambda表达式封装
res = lambda x, y: x + y
print(res(3,4))
E:\python3810\python.exe D:/py/test/gao/匿名函数.py
7
  1. 普通函数和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)