十六、Python之lambda表达式

简介: 十六、Python之lambda表达式

1、lambda的应用场景


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


2、lambda语法


lambda 参数列表 : 表达式


注意事项:

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


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


3、lambda快速入门


#一般函数
def fn1():
    return 100
print(fn1)
print(fn1())


控制台打印如图所示:


86.png


对比lambda表达式:

# lambda表达式
fn2 = lambda: 100
print(fn2)
print(fn2())


控制台打印如图所示:


87.png


4、带参数的lambda


#普通函数
def add(a, b):
    return a + b
result = add(1, 2)
print(result)


控制台打印如图所示:


88.png


对比lambda表达式:


#lambda表达式
fn1 = lambda a, b: a + b
print(fn1(1, 2))


控制台打印如图所示:


89.png


5、lambda参数形式


#☆ 无参数
fn1 = lambda: 100
print(fn1())
#☆ 一个参数
fn1 = lambda a: a
print(fn1('hello world'))
#☆ 默认参数
fn1 = lambda a, b, c=100: a + b + c
print(fn1(10, 20))
#☆ 可变参数:*args
fn1 = lambda *args: args
print(fn1(10, 20, 30))   # =>   注:这里的可变参数传入到lambda之后,返回值为元组。
#☆ 可变参数:**kwargs
fn1 = lambda **kwargs: kwargs
print(fn1(name='python', age=20))


控制台打印如图所示:


90.png


6、lambda应用


☆ 带判断的lambda表达式


fn1 = lambda a, b: a if a > b else b
print(fn1(1000, 500))

控制台打印如图所示:


91.png


☆列表数据排序


students = [
    {'name': 'TOM', 'age': 20},
    {'name': 'ROSE', 'age': 19},
    {'name': 'Jack', 'age': 22}
]
# 按name值升序排列
students.sort(key=lambda x: x['name'])
print(students)
# 按name值降序排列
students.sort(key=lambda x: x['name'], reverse=True)
print(students)
# 按age值升序排列
students.sort(key=lambda x: x['age'])
print(students)

控制台打印如图所示:


92.png


7lambda的优缺点:


lambda缺点:


1.对很多 Python 程序员来说, lambda 表达式是一种古怪而又陌生的语法。


2.lambda 函数本身缺少名称和api文档, 意味着了解它们功能的唯一方式就是读代码,查用法。


3.lambda 表达式只能包含一条语句, 因此某些提高可读性的语言功能, 如元组拆包, 不能与它们一起搭配使用。


4.lambda 函数通常可以被替换为标准库中已存在的函数或 Python 内置的函数。


lambda优点:


1.代码简洁。


2.不增加额外变量。


总结:


       通过文中的例子可以感知到lambda的表达式非常简洁,但是缺点也一目了然,不便于理解,代码的可读性,关联性显得比较琐碎,没有一般表达式具体详细,使用者可以根据自身情况及代码的需求使用此表达式。


相关文章
|
24天前
|
缓存 前端开发 JavaScript
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
在我们快速发展的在线环境中,只需几秒钟加载的网站就能真正脱颖而出。您是否知道加载时间较快的网站的转化率比加载时间较长的网站高出三倍?
23 0
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
|
24天前
|
存储 JSON 网络安全
使用 EFS 在 AWS Lambda 上安装 Python 依赖项
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
29 1
|
1月前
|
Python
Python编程中正则表达式的使用
【10月更文挑战第22天】正则表达式,一种强大的文本处理工具,在Python编程中有着广泛的应用。本文将介绍如何使用Python中的re库来使用正则表达式,包括如何创建、匹配、查找和替换字符串等。通过学习本文,你将能够掌握Python中正则表达式的基本使用方法。
|
1月前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
35 2
|
3月前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
53 2
|
2月前
|
程序员 Python
Python中Lambda表达式的优缺点及使用场景
Python中Lambda表达式的优缺点及使用场景
42 0
|
2月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
33 0
|
3月前
|
Python
Python中几种lambda排序方法
【9月更文挑战第7天】在Python中,`lambda`表达式常用于配合排序函数,实现灵活的数据排序。对于基本列表,可以直接使用`sorted()`进行升序或降序排序;处理复杂对象如字典列表时,通过`lambda`指定键值进行排序;同样地,`lambda`也适用于根据元组的不同位置元素来进行排序。
深入浅出python的lambda表达式
今天我们来聊聊Python中一个常用的特性 - lambda表达式。别被这个听起来很高大上的名字吓到,其实它就是个匿名函数的实现机制。
|
4月前
|
Python
Python 中的 Lambda 函数是什么?
【8月更文挑战第29天】
48 0
下一篇
DataWorks