匿名函数

🔖 python
Author

Guangyao Zhao

Published

Jan 2, 2023

匿名函数顾名思义就是不知道名称或者没有名称的函数。匿名函数的使用非常简单且简洁,一般要结合其它的函数一起使用。含有参数的匿名函数:

add_lambda = lambda x, y: x + y
add_lambda(10, 20)
30

含有判断条件的匿名函数,从下面例子可以看出匿名函数并没有return

if_lambda = lambda x: "odd" if x % 2 == 1 else "even"
if_lambda(20)
'even'

以上的使用场景并不常见,接下来采用几个函数混合使用的例子讲解下匿名函数的实际应用场景。

map函数结合匿名函数:

list(map(if_lambda, range(10)))
['even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd']

排序中匿名函数的使用,将字典按照key的顺序排序:

li = {"first": 1, "second": 2, "third": 3, "fourth": 4}
dict(sorted(li.items(), key=lambda x: x[0]))
{'first': 1, 'fourth': 4, 'second': 2, 'third': 3}

在此提醒下,不要用匿名函数批量赋值给变量,虽然可行,但是代码不够直观:

li = range(10)
list(map(lambda x: x * 2, li))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

此时可以使用列表推导式,更直观:

[x * 2 for x in li]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]