Python基础-18-lambda表达式

一、普通函数与匿名函数

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(1020))

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(1020))

列表数据+字典数据排序

知识点:列表.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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!