Python教程

python函数lambda表达式

本文主要是介绍python函数lambda表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • lambda表达式的作用
  • lambda的语法
  • lambda表达式的参数形式
    • 无参数
    • 一个参数
    • 默认参数
    • 可变参数
      • *args
      • **kwargs
  • lambda表达式的应用
    • 带判断的lambda表达式
    • 列表数据按照字典键的值排序

在这里插入图片描述

lambda表达式的作用

  • 对于一种函数,只有一个返回值,并且只有一句代码。无需再按def函数定义语句书写,使用lambda表达式可以简化代码。
  • lambda表达式也称为匿名函数。

lambda的语法

lambda 参数列表:表达式/返回值

其中:参数列表可有可无,可以接收任意数量的参数,但只能返回一个值。

def fun1():
    return 100
print(fun1)
print(fun1())

fun2 = lambda :100
print(fun2)
print(fun2())

<function fun1 at 0x00000213E2812EA0>
100
<function <lambda> at 0x00000213E4675A60>
100

注意fun2是一个函数名字。

练习:计算三个数的平均值

# 计算三个数的平均值
def avg(a,b,c):
    return ((a+b+c)/3)
print(avg(1,2,3))

avg2 = lambda a,b,c:((a+b+c)/3)
print(avg2(1,2,3))

2.0
2.0

lambda表达式的参数形式

与函数的参数形式相同

无参数

fun = lambda :100
print(fun())

100

一个参数

fun = lambda a:a*2
print(fun('python'))

pythonpython

默认参数

fun = lambda a,b,c=3:((a+b+c)/3)
print(fun(1,2,3))
print(fun(1,2))

2.0
2.0

可变参数

*args

接收不定长的位置参数,返回一个元组。

fun = lambda *args:args
print(fun(10,20,30))

(10, 20, 30)

**kwargs

接收不定长的关键字参数,返回一个字典。

fun = lambda **kwargs:kwargs
print(fun(name = 'Mary',age=20))

{'name': 'Mary', 'age': 20}

注意:args和kwargs名称是可变的,但一般默认是这两个。但前面一个*号和两个 *号要注意。

lambda表达式的应用

带判断的lambda表达式

fun = lambda a,b:a if a>b else b # 表示条件成立,执行前面的;条件不成立,执行后面的。

print(fun(100,50))
print(fun(50,100))

100
100

列表数据按照字典键的值排序

student = [
    {'name':'Mary','age':20},
    {'name':'Jone','age':25},
    {'name':'Susan','age':30}
]

student.sort(key=lambda x:x['age'])# 按照age对应的值升序排序
print(student)

student.sort(key=lambda x:x['age'],reverse=True)# 按照age对应的值降序排序
print(student)

[{'name': 'Mary', 'age': 20}, {'name': 'Jone', 'age': 25}, {'name': 'Susan', 'age': 30}]
[{'name': 'Susan', 'age': 30}, {'name': 'Jone', 'age': 25}, {'name': 'Mary', 'age': 20}]
这篇关于python函数lambda表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!