python 匿名函数相关总结

  • Post category:Python

Python匿名函数相关总结

在Python中,我们经常需要定义一些简短的函数用来描述一些实现细节,这就是lambda表达式的使用场景。这些函数有时不需要特定的函数名。在这种情况下,可以使用匿名函数。

什么是匿名函数?

根据 Python 文档的说法,lambda 关键字创建了一个匿名函数。换句话说,它创建了一个没有名称的函数对象。

在 Python 语言中,就像其他类型变量一样,也可以定义函数并将其值赋给一个变量。lambda 关键字提供了一种简洁的方式来定义这些临时的函数对象。

匿名函数语法

匿名函数语法非常简单。在 Python 中,可以使用如下语法定义一个匿名函数:

lambda arguments: expression

其中,arguments 是函数参数,可以有多个,用逗号分隔。expression 是一个表达式,用于函数的计算。匿名函数的返回值就是表达式的计算结果。

匿名函数示例

下面是两个使用 Python 匿名函数的例子。

排序

对于排序的场景,有时需要按照列表的某个属性进行排序。使用匿名函数可以让代码更加简洁。

假设有以下一个列表:

people = [
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 20},
    {"name": "Charlie", "age": 30},
]

按照 name 字段进行排序:

sorted_people = sorted(people, key=lambda p: p["name"])

输出结果:

[
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 20},
    {"name": "Charlie", "age": 30},
]

按照 age 字段进行排序:

sorted_people = sorted(people, key=lambda p: p["age"])

输出结果:

[
    {"name": "Bob", "age": 20},
    {"name": "Alice", "age": 25},
    {"name": "Charlie", "age": 30},
]

过滤

使用匿名函数可以快速过滤列表中符合条件的元素。

对于以下列表:

numbers = [1, 2, 3, 4, 5]

下面的代码使用匿名函数过滤出偶数:

even_numbers = filter(lambda x: x % 2 == 0, numbers)

这里,lambda x: x % 2 == 0 表示一个匿名函数,该函数的参数是 x,表达式为 x % 2 == 0,返回值为 True 或者 Falsefilter 函数根据该函数的返回值来保留或者过滤元素。

输出结果:

[2, 4]

总结

匿名函数是 Python 中的一种快捷方式,它提供了一种简单的方法来定义临时函数对象。在一些场景中,使用匿名函数可以让代码变得更加清晰和简洁。