Python——lambda表达式(匿名函数)详解

1. Lambda应用场景

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

2. lambda语法

注意事项:

  • lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用
  • lambda表达式能接受任何数量的参数但只能返回一个表达式的值
lambda 参数列表:表达式

3. 体验lambda

# 1.函数
def fn1():
	return 100

# 2.lambda
fn2 = lambda:100
print(fn2) # fn2函数的内存地址
print(fn2()) # 100

4. lambda参数形式

4.1 无参数

fn1 = lambda:100
print(fn1()) # 100

4.2 一个参数

fn1 = lambda a : a
print(fn1("hello")) # "hello"

4.3 默认参数(缺省参数)

fn1 = lambda a,b,c=100:a+b+c
print(fn1(1,2)) # 103

4.4 参数*args

fn1 = lambda *args:args
print(fn1(1,2,3)) # (1,2,3)

4.5 参数**kwargs

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

5. lambda的应用

5.1 带判断的lambda

fn1 = lambda a,b:a if a>b else b
print(fn1(1,2)) # 2

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

列表的sort中的参数key就收一个函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。

students = [{'name':'tom','age':20},
			{'name':'jack','age':10},
			{'name':'mike','age':30}]

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

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

猜你喜欢

转载自blog.csdn.net/weixin_44441131/article/details/107108226
今日推荐