lambda表达式

lambda表达式

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

语法

lambda 参数列表: 表达式

注意:

快速入门

# 函数
def fn1():
	return 200

print(fn1)
print(fn1())

#lambda表达式, 匿名函数
fn2 = lambda: 100
print(fn2) #lambda内存地址
print(fn2()) # 调用函数并打印返回值

示例:计算a+b

函数实现

def add(a, b):
	return a + b

result = add(1, 2)
print(result)

lambda实现

fn1 = lambda a, b: a + b
print(fn1(1, 2))

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)) # 10 + 20 + 100
print(fn1(10, 20, 200)) # 10 + 20 + 200

可变参数:*args

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

可变参数:**kwargs

fn1 = lambda **kwargs: kwargs
print(fn1(name='Python')) # {'name': 'Python'}
print(fn1(name='Python', age=10)) # {'name': 'Python', 'age': 10}

lambda的应用

带判断的lambda

# 比较a, b两个数,返回大的数
fn1 = lambda a, b: a if a > b else b
print(fn1(100, 500))

列表数据按字典key的值排序

students = [
	{'name': 'Tom','age': 20}
	{'name': 'Jack','age': 23}
	{'name': 'Jack','age': 18}
]

# 按name值升序排序
students.sort(key= lambda x: x['name'])

# 按name值降序排序
students.sort(key= lambda x: x['name'], reverse=True)
print(students)

# 按age值升序排序
students.sort(key= lambda x: x['age'])
print(students)