欢迎访问宙启技术站
智能推送

Python中的lambda函数快速入门指南

发布时间:2023-06-11 16:37:25

在Python中,lambda函数是一种快速创建简单函数的方法。这些函数被称为“匿名函数”,因为它们通常没有名称,而是在需要时直接嵌入代码中。本文将介绍lambda函数的语法、用途以及如何使用它们。

## 语法

匿名函数的语法非常简单。其基本形式如下:

lambda argument: expression

其中, argument 是传递给函数的参数,而 expression 是函数执行的代码。在这个形式中,函数只有一个参数,但是lambda函数也可以有多个参数,用逗号分隔。

以下是一个lambda函数的示例代码:

add = lambda x, y: x + y

print(add(2,3))

输出结果为:

5

这个lambda函数将两个数字相加,并返回结果。

## 用途

lambda函数最常用的一种用途是在函数式编程中。它们通常用于功能类似于map()、filter()和reduce()的高阶函数中。

### map()函数

map()函数可以将一个函数应用于一个序列的每个元素,返回一个新的序列,包含应用函数后的元素。

以下是一个用lambda函数和map()实现平方函数的示例:

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

result = map(lambda x: x*x, numbers)

print(list(result))

输出结果为:

[1, 4, 9, 16, 25]

这里,lambda函数将输入值平方,并将结果存储在一个新的列表中。

### filter()函数

filter()函数用于从序列中过滤元素。当传递一个lambda函数时,返回一个包含符合条件的元素的新序列。

以下是一个使用lambda函数和filter()函数从一个列表中过滤偶数的示例:

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

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

print(list(result))

输出结果为:

[2, 4]

这里,lambda函数测试输入数字是否为偶数,并将所有偶数存储在一个新列表中。

### reduce()函数

reduce()函数接受一个序列,经过对序列的连续操作,获得单个值。当传递一个lambda函数时,它对序列中的元素进行二进制运算。

以下是一个使用lambda函数和reduce()函数将列表中的数字相加的示例:

from functools import reduce

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

result = reduce(lambda x, y: x + y, numbers)

print(result)

输出结果为:

15

这里,lambda函数将两个数字相加,reduce()函数将它们应用于所有数字,并返回总和。

## 总结

lambda函数是Python中一种创建简单函数的快速方法。虽然它们通常与高阶函数一起使用,但它们也可以单独使用。lambda函数的语法简单明了,可以轻松地定义单个参数或多个参数的函数。