十六、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的表达式非常简洁,但是缺点也一目了然,不便于理解,代码的可读性,关联性显得比较琐碎,没有一般表达式具体详细,使用者可以根据自身情况及代码的需求使用此表达式。


相关文章
|
12天前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
15 2
|
1月前
|
Python
Python中几种lambda排序方法
【9月更文挑战第7天】在Python中,`lambda`表达式常用于配合排序函数,实现灵活的数据排序。对于基本列表,可以直接使用`sorted()`进行升序或降序排序;处理复杂对象如字典列表时,通过`lambda`指定键值进行排序;同样地,`lambda`也适用于根据元组的不同位置元素来进行排序。
深入浅出python的lambda表达式
今天我们来聊聊Python中一个常用的特性 - lambda表达式。别被这个听起来很高大上的名字吓到,其实它就是个匿名函数的实现机制。
|
2月前
|
Python
Python中的Lambda表达式
Python中的Lambda表达式
|
2月前
|
Python
Python 中的 Lambda 函数是什么?
【8月更文挑战第29天】
13 0
|
2月前
|
运维 Java API
探索Java中的Lambda表达式自动化运维的魔法:如何利用Python脚本提升效率
【8月更文挑战第29天】Lambda表达式是Java 8中引入的一个新特性,它允许我们将功能作为方法参数,或者代码作为数据来处理。在这篇文章中,我们将深入探讨Java中的Lambda表达式,包括它的语法、使用场景以及如何在实际编程中应用它。我们将通过一些简单的示例来演示Lambda表达式的强大功能和灵活性,让你更好地理解和掌握这一新特性。
|
2月前
|
数据处理 开发者 Python
深入理解Python中的Lambda函数及其应用
【8月更文挑战第24天】
34 0
|
2月前
|
测试技术 数据处理 Python
掌握Python lambda表达式:高效编程的新趋势
【8月更文挑战第22天】在Python中,函数是执行特定任务的代码块。匿名函数,即lambda函数,无需名称即可定义,适用于简短的一次性使用场景。其语法简洁,形如`lambda arguments: expression`,能有效应用于数据处理。例如,计算两数之和:`sum = lambda a, b: a + b`;对列表元素求平方:`squared = map(lambda x: x**2, numbers)`;或将字符串转为大写:`uppercased = map(lambda s: s.upper(), strings)`。这些用例展示了lambda函数如何简化代码,使其更清晰高效。
13 0
|
4月前
|
存储 Python
在Python中,匿名函数(lambda表达式)是一种简洁的创建小型、一次性使用的函数的方式。
【6月更文挑战第24天】Python的匿名函数,即lambda表达式,用于创建一次性的小型函数,常作为高阶函数如`map()`, `filter()`, `reduce()`的参数。lambda表达式以`lambda`开头,后跟参数列表,冒号分隔参数和单行表达式体。例如,`lambda x, y: x + y`定义了一个求和函数。在调用时,它们与普通函数相同。例如,`map(lambda x: x ** 2, [1, 2, 3, 4, 5])`会返回一个列表,其中包含原列表元素的平方。
51 4
|
4月前
|
Python
Python教程:一文了解如何使用Lambda 表达式和 filter函数实现过滤器
在 Python 中,Lambda 表达式是一种匿名函数,也就是没有名称的函数。它允许您快速定义简单的单行函数,通常用于函数式编程中的一些场景,例如在高阶函数中作为参数传递。
134 2