开始使用免费开始使用

Reduce() 与 lambda 函数

您已经非常熟练地使用 lambda 函数了!再给您的工具箱增加一个函数。reduce() 函数用于对列表执行某种计算,并且与 map()filter() 不同,reduce() 返回的是单个值。要使用 reduce(),需要从 functools 模块导入它。

还记得前几个练习中的 gibberish() 吗?

# Define gibberish
def gibberish(*args):
    """Concatenate strings in *args together."""
    hodgepodge = ''
    for word in args:
        hodgepodge += word
    return hodgepodge

gibberish() 接受一个字符串列表作为参数,并返回一个单值结果,即将所有字符串连接后的结果。在本练习中,您将使用 reduce() 与一个把字符串拼接在一起的 lambda 函数来复现这一功能。

本练习是课程的一部分

Python 函数入门

查看课程

练习说明

  • functools 模块导入 reduce 函数。
  • reduce() 调用中,传入一个 lambda 函数,该函数接收两个字符串参数 item1item2 并将它们连接起来;同时传入字符串列表 stark。将结果赋值给 resultreduce() 的第 1 个参数应为该 lambda 函数,第 2 个参数为列表 stark

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import reduce from functools


# Create a list of strings: stark
stark = ['robb', 'sansa', 'arya', 'brandon', 'rickon']

# Use reduce() to apply a lambda function over stark: result
result = reduce(____, ____)

# Print the result
print(result)
编辑并运行代码