Sitelet https://www.datacamp.com/zh/tutorial/python-lambda
跳至内容

Python lambda 教程

通过 lambda 函数学习一种更快捷的即写即用函数编写方式。
已更新 2026年10月6日  · 3分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

您可以使用 def 关键字、函数头、文档字符串和函数体来编写自定义的 Python 函数。不过,还有一种更快的即写即用方式,称为 lambda 函数,因为它使用关键字 lambda。

有些函数定义足够简单,可以转换为 lambda 函数。这样做可以减少代码行数,非常棒,尤其是在编写和维护大型程序时格外实用。

lambda 函数

这里我们将函数 raise_to_power 重写为一个 lambda 函数。在关键字 lambda 之后,先指定参数名;然后使用冒号,后面跟要返回的表达式。

raise_to_power = lambda x, y: x ** y

raise_to_power(2, 3)
8

如前所述,lambda 函数让您可以快速而“简洁粗犷”地写函数,因此我们并不建议始终使用它们,但在某些场景下非常好用,比如下面的例子。

map() 与 lambda 函数

map 函数接收两个参数:一个函数和一个序列(如列表),并将该函数应用到序列的所有元素上。我们可以将 lambda 函数传给 map,甚至无需给它命名,这种情况下它们被称为匿名函数。

在这个示例中,我们将 map() 用于一个 lambda 函数,以对列表的所有元素求平方,并将结果保存到 square_all 中。

nums = [48, 6, 9, 21, 1]

square_all = map(lambda num: num ** 2, nums)

print(square_all)
<map object at 0x103e065c0>

打印 square_all 会发现它是一个 map 对象。要查看其返回的内容,我们将其转换为列表并打印结果。

print(list(square_all))
[2304, 36, 81, 441, 1]

交互式示例:编写一个 lambda 函数

下面的函数 echo_word 接受两个参数:字符串 word1 和整数 echo。它返回一个字符串,即将 word1 复制 echo 次后拼接得到的结果。

您将把上述这个简单函数转换为一个 lambda 函数。

def echo_word(word1, echo):
    """Concatenate echo copies of word1."""
    words = word1 * echo
    return words

在下面的示例中,您将:

  • 使用变量 word1 和 echo 定义一个 lambda 函数 echo_word。复现上面 echo_word() 的原始函数定义所做的事情。
  • 按顺序用字符串参数 'hey' 和数值 5 调用 echo_word()。将调用结果赋给 result。最后,打印变量 result。
# Define echo_word as a lambda function: echo_word
echo_word = (lambda word1, echo: word1 * echo)

# Call echo_word: result
result = echo_word('hey', 5)

# Print result
print(result)

当我们运行上述代码时,将产生以下结果:

heyheyheyheyhey

亲自试一试。

想进一步了解 Lambda 函数,请观看我们课程 Python Data Science Toolbox(第 1 部分) 中的这段视频。

本内容摘自 DataCamp 由 Hugo Bowne-Anderson 授课的 Python Data Science Toolbox(第 1 部分) 课程。

查看 DataCamp 的 Python 函数教程。

主题
Python

进一步学习 Python

课程

Python 函数入门

3 小时
471.4K
学习在 Python 中编写自己的函数,以及作用域和错误处理等关键概念。
查看详情Right Arrow
开始课程
查看更多Right Arrow