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 函数,该函数接收两个字符串参数item1和item2并将它们连接起来;同时传入字符串列表stark。将结果赋值给result。reduce()的第 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)