一、普通函数与匿名函数
在Python中,函数是一个被命名的、独立的完成特定功能的一段代码,并可能给调用它的程序一个返回值。
所以在Python中,函数大多数是有名函数 => 普通函数。但是有些情况下,我们为了简化程序代码,也可以定义匿名函数 => lambda表达式
二、lambda表达式应用场景
如果一个函数有一个返回值,并且只有一句代码,可以使用 lambda简化。
三、lambda表达式基本语法
变量 = lambda 函数参数:表达式(函数代码 + return返回值)
# 调用变量
变量()
四、编写lambda表达式
定义一个函数,经过一系列操作,最终返回100
def fn1():
return 100
# 调用fn1函数
print(fn1) # 返回fn1函数在内存中的地址
print(fn1()) # 代表找到fn1函数的地址并立即执行
lambda表达式进行简化:
fn2 = lambda : 100
print(fn2) # 返回fn2在内存中的地址
print(fn2())
五、编写带参数的lambda表达式
编写一个函数求两个数的和
def fn1(num1, num2):
return num1 + num2
print(fn1(10, 20))
lambda表达式进行简化:
fn2 = lambda num1, num2:num1 + num2
print(fn2(10, 20))
六、lambda表达式相关应用
带默认参数的lambda表达式
fn = lambda a, b, c=100 : a + b + c
print(fn(10, 20))
不定长参数:可变参数*args
fn1 = lambda *args : args
print(fn1(10, 20, 30))
不定长参数:可变参数**kwargs
fn2 = lambda **kwargs : kwargs
print(fn2(name='Tom', age=20, address='北京市海淀区'))
带if判断(三目运算符)的lambda表达式
fn = lambda a, b : a if a > b else b
print(fn(10, 20))
列表数据+字典数据排序
知识点:列表.sort(key=排序的key索引, reverse=True)
students = [
{'name': 'Tom', 'age': 20},
{'name': 'Rose', 'age': 19},
{'name': 'Jack', 'age': 22}
]
# 按name值升序排列
students.sort(key=lambda x: x['name']) # Jack/Rose/Tom
print(students)
# 按name值降序排列
students.sort(key=lambda x: x['name'], reverse=True)
print(students)
# 按age值升序排列
students.sort(key=lambda x: x['age'])
print(students)
执行流程:
students = [
{'name': 'Tom', 'age': 20},
{'name': 'Rose', 'age': 19},
{'name': 'Jack', 'age': 22}
]
# 按name值升序排列
students.sort(key=lambda x:x['name'])
print(students)
原文始发于微信公众号(Python之家):Python基础-18-lambda表达式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/198497.html