# Python 匿名/ Lambda 函数

> 原文： [https://www.programiz.com/python-programming/anonymous-function](https://www.programiz.com/python-programming/anonymous-function)

#### 在本文中，您将学习匿名函数，也称为 lambda 函数。 您将了解它们的含义，语法以及如何使用它们（包含示例）。

## 什么是 Python 中的 lambda 函数？

在 Python 中，匿名函数是[函数](/python-programming/function)，其定义时没有名称。

使用 Python 中的`def`关键字定义普通函数时，使用`lambda`关键字定义匿名函数。

因此，匿名函数也称为 lambda 函数。

* * *

## 如何在 Python 中使用 lambda 函数？

python 中的 lambda 函数具有以下语法。

### python 中 Lambda 函数的语法

```py
lambda arguments: expression
```

Lambda 函数可以具有任意数量的参数，但只能有一个表达式。 该表达式被求值并返回。 Lambda 函数可在需要函数对象的任何地方使用。

* * *

### python 中的 Lambda 函数示例

这是一个使输入值加倍的 lambda 函数示例。

```py
# Program to show the use of lambda functions
double = lambda x: x * 2

print(double(5))
```

**输出**

```py
10
```

在上述程序中，`lambda x: x * 2`是 lambda 函数。 这里`x`是自变量，`x * 2`是要求值并返回的表达式。

此函数没有名称。 它返回分配给标识符`double`的函数对象。 现在我们可以将其称为常规函数。 该声明

```py
double = lambda x: x * 2
```

几乎与：

```py
def double(x):
   return x * 2
```

* * *

## 在 Python 中使用 Lambda 函数

当我们在短时间内需要无名函数时，我们使用 lambda 函数。

在 Python 中，我们通常将其用作高阶函数的参数（该函数将其他函数作为[参数](/python-programming/function-argument)）。 Lambda 函数与`filter()`，`map()`等内置函数一起使用。

### 与`filter()`一起使用的示例

Python 中的`filter()`函数采用一个函数和一个列表作为参数。

将使用列表中的所有项目调用该函数，并返回一个新列表，其中包含该函数求值为`True`的项目。

这是使用`filter()`函数的示例，该函数仅从列表中过滤出偶数。

```py
# Program to filter out only the even items from a list
my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(filter(lambda x: (x%2 == 0) , my_list))

print(new_list)
```

**输出**：

```py
[4, 6, 8, 12]
```

### 与`map()`一起使用的示例

Python 中的`map()`函数接受一个函数和一个列表。

将使用列表中的所有项目调用该函数，并返回一个新列表，其中包含该函数为每个项目返回的项目。

这是使用`map()`函数将列表中所有项目加倍的示例。

```py
# Program to double each item in a list using map()

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(map(lambda x: x * 2 , my_list))

print(new_list)
```

**输出**：

```py
[2, 10, 8, 12, 16, 22, 6, 24]
```