lambda表达式(匿名函数)

1、lambda的应用场景

  如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化。

2、lambda语法

  lambda 参数列表:表达式

  注意:lambda表达式参数可有可无,函数的参数在lambda表达式中完全适用。

     lambda函数能接收任何数量的参数但只能返回一个表达式的值。

3、体验

复制代码
# 需求:函数 返回值100

# 1.函数
def fn1():
    return 100

# <function fn1 at 0x000001F62A913E20>
# print(fn1)
# 100
# print(fn1())

result = fn1()
# 100
print(result)

# 2. lambda  匿名函数
# lambda 参数列表:表达式
fn2 = lambda : 100
# lambda内存地址
print(fn2)
print(fn2())  # 100 返回值 调用函数
复制代码

  注意:直接打印lambda表达式,输出的是此lambda的内存地址

4、计算a+b

复制代码
# 需求:计算任意两个数字的累加和

# 1. 函数
def add(a,b):
    return a + b

result = add(1,3)
print(result)

# 2. lambda
fn1 = lambda a, b: a + b
print(fn1(3, 4))
复制代码

 5、lambda的参数形式

  5.1 无参数

fn1 = lambda: 100
print(fn1())  # 100

  5.2 一个参数

 

# 一个参数
fn1 = lambda a: a
print(fn1('hello word'))  # hello word

 

  5.3 默认参数

# 默认参数
fn2 = lambda a, b, c= 100: a + b + c
# print(fn2(10, 30))  # 140
print(fn2(10, 20, 40))

  注意:默认参数如果不传值会使用默认的值,如果传数据了就会覆盖原有的默认值

  5.4 可变参数:*args(接受不定长的位置参数)

# 可变参数
fn3 = lambda *args: args
print(fn3(10, 30, 50))  # (10, 30, 50)

  注意:这里的可变参数传入到lambda之后,返回值为元组

  5.5 可变参数:**kwargs(接受不定长的关键字参数)

# 可变参数 **kwargs
fn4 = lambda **kwargs: kwargs
print(fn4(name='python'))  # {'name': 'python'}

  注意:这里的可变参数传入到lambda之后,返回值为字典

6、lambda的应用

  6.1 带判断的lambda

# lambda 两个数字比大小,谁大返回谁
fn1 = lambda a, b: a if a > b else b
print(fn1(1000, 500))  # 1000

  6.2 列表数据按字典key的值排序

 

复制代码
# lambda 两个数字比大小,谁大返回谁
# fn1 = lambda a, b: a if a > b else b
# print(fn1(1000, 500))  # 1000

student = [
    {'name': 'lisi', 'age': 20},
    {'name': 'zhang', 'age': 30},
    {'name': 'hong', 'age': 40}
]
# sort(key=lambda..., reverse=布尔类型数据)
# 1. name key对应的值进行升序排序
student.sort(key=lambda x: x['name'])
print(student)

# 2. name key对应的值进行降序排序
student.sort(key=lambda x: x['name'], reverse=True)
print(student)
# 3. age key对应的值进行升序排序
student.sort(key=lambda x: x['age'])
print(student)
复制代码

 

posted @   㞢卄BYZ  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示