# Python Lambda

> 原文： [https://pythonspot.com/python-lambda/](https://pythonspot.com/python-lambda/)

我们可以创建匿名函数，称为 lambda 函数。 Lambda 函数与常规 Python 函数不同，它们源自 Lambda 演算。 它允许您编写非常简短的函数。

## Lambda 函数示例

此代码显示 lambda 函数的用法：

```py
#!/usr/bin/env python

f = lambda x : 2 * x
print f(3)

```

Lambda 函数从不使用`return`语句，它总是返回。 Lambda 函数可能包含`if`语句：

```py
#!/usr/bin/env python

f = lambda x: x > 10
print(f(2))
print(f(12))

```

## `map`函数

`map`的定义是`map(function, iterable)`。它将函数应用于可迭代对象的每个项目。我们可以对列表和 lambda 函数使用`map()`：

```py
#!/usr/bin/env python

list = [1,2,3,4,5]
squaredList = map(lambda x: x*x, list)
print(squaredList)

```

在使用 lambda 函数的任何地方，都可以改用普通函数。 Lambda 函数不是语句，而是表达式。 Lambda 函数不支持语句块。

## `filter`函数

`filter(function, iterable)`从元素中创建一个新列表，该函数为其返回`True`。例：

```py
#!/usr/bin/env python

list = [1,2,3,4,5,6,7,8,9,10]
newList = filter(lambda x: x % 2 == 0, list)
print(newList)

```

返回列表只包含 lambda 表达式`lamba x: x % 2 == 0`为真的元素。

## `reduce`函数

函数`reduce(function, iterable)`从左到右将函数应用在`iterable`的各个项目上。 例：

```py
#!/usr/bin/env python

list = [1,2,3,4,5]
s = reduce(lambda x,y: x+y,  list)
print(s)

```

在这种情况下，表达式始终为真，因此它简单地汇总了列表中的元素。 另一个例子：

```py
#!/usr/bin/env python

list = [10,6,7,5,2,1,8,5]
s = reduce(lambda x,y: x if (x > y) else y, list)
print(s)

```