您可以使用 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。
echo_word = (lambda word1, echo: word1 * echo)
result = echo_word('hey', 5)
print(result)
技术支持
当我们运行上述代码时,将产生以下结果:
heyheyheyheyhey
技术支持
亲自试一试。
想进一步了解 Lambda 函数,请观看我们课程 Python Data Science Toolbox(第 1 部分) 中的这段视频。
本内容摘自 DataCamp 由 Hugo Bowne-Anderson 授课的 Python Data Science Toolbox(第 1 部分) 课程。
查看 DataCamp 的 Python 函数教程。
您可以使用 def 关键字、函数头、文档字符串和函数体来编写自定义的 Python 函数。不过,还有一种更快的即写即用方式,称为
lambda函数,因为它使用关键字lambda。有些函数定义足够简单,可以转换为 lambda 函数。这样做可以减少代码行数,非常棒,尤其是在编写和维护大型程序时格外实用。
lambda函数这里我们将函数
raise_to_power重写为一个 lambda 函数。在关键字lambda之后,先指定参数名;然后使用冒号,后面跟要返回的表达式。如前所述,
lambda函数让您可以快速而“简洁粗犷”地写函数,因此我们并不建议始终使用它们,但在某些场景下非常好用,比如下面的例子。map()与lambda函数map函数接收两个参数:一个函数和一个序列(如列表),并将该函数应用到序列的所有元素上。我们可以将lambda函数传给map,甚至无需给它命名,这种情况下它们被称为匿名函数。在这个示例中,我们将
map()用于一个lambda函数,以对列表的所有元素求平方,并将结果保存到square_all中。打印
square_all会发现它是一个map对象。要查看其返回的内容,我们将其转换为列表并打印结果。交互式示例:编写一个
lambda函数下面的函数
echo_word接受两个参数:字符串word1和整数echo。它返回一个字符串,即将word1复制echo次后拼接得到的结果。您将把上述这个简单函数转换为一个 lambda 函数。
在下面的示例中,您将:
word1和echo定义一个 lambda 函数echo_word。复现上面echo_word()的原始函数定义所做的事情。'hey'和数值5调用echo_word()。将调用结果赋给result。最后,打印变量result。当我们运行上述代码时,将产生以下结果:
亲自试一试。
想进一步了解 Lambda 函数,请观看我们课程 Python Data Science Toolbox(第 1 部分) 中的这段视频。
本内容摘自 DataCamp 由 Hugo Bowne-Anderson 授课的 Python Data Science Toolbox(第 1 部分) 课程。
查看 DataCamp 的 Python 函数教程。