python3 之 匿名函数
1、匿名函数的含义
顾名思义就是没有函数名的函数。一般用来解决功能简单需求的一句话函数。
2、匿名函数的格式
lambda 参数: 返回值
# 多个参数的时候,用英文逗号隔开
举例:
# 匿名函数 lambda
# 基本的语法结构
# func 是一个内存地址,要运行它,需要加个()去调用它; x 表示形参;x+1 相当于函数return 的值;
func = lambda x: x+1
print(func(10))
# 相当于以下函数
"""
def foo(x):
return x+1
print(foo(10))
"""
f = lambda x, y, z: (x+1, y+1, z+1)
print(f(1, 2, 3))
输出的结果:
11
(2, 3, 4)
3、匿名函数的常用用法
匿名函数经常与内置函数结合使用。
# 与max()/ min() 函数结合使用
print(max([{'age': 10}, {'age': 20}], key=lambda dic: dic['age']))
# 与filter()
li = ['alex', [1, 2, 3], {}, ()]
print(list(filter(lambda x: type(x) is not dict, li))) # 找出li中非字典数据类型
# 与map()
print(list(map(lambda n: n**2, range(10)))) # 把range(10)中的每个值的平方 组成列表
# 与sorted
p = [{'name': '电脑', 'price': 2000}, {'name': '电脑', 'price': 1980}]
print(sorted(p, key=lambda dic: dic['price'])) # 按价格排序
输出的结果:
{'age': 20}
['alex', [1, 2, 3], ()]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[{'name': '电脑', 'price': 1980}, {'name': '电脑', 'price': 2000}]