1. Learn
  2. /
  3. 课程
  4. /
  5. Python 函数入门

Connected

道练习

Map() 与 lambda 函数

到目前为止,您已经用过 lambda 函数来编写简短、简单的函数,也用它来重新定义具有简单功能的函数。不过,lambda 函数最好的用法,是在需要将这些简单功能以匿名方式嵌入到更大的表达式中时。也就是说,与使用 def 定义的函数不同,这种功能不会存储在环境中。为了更好地理解这个概念,您将把 lambda 函数与 map() 函数结合使用。

回顾视频内容,map() 会将某个函数应用到一个对象上,例如列表。在这里,您可以用 lambda 函数来定义 map() 用于处理对象的函数。例如:

nums = [2, 4, 6, 8, 10]

result = map(lambda a: a ** 2, nums)

如上所示,一个将值 a 提升到 2 次幂的 lambda 函数,与数字列表 nums 一起传入 map()。对 map() 的调用会返回一个映射对象(map object),并存储在 result 中。接下来,您将练习在 map() 中使用 lambda 函数。在本练习中,您会把之前练习中定义的 add_bangs() 函数的功能映射到一个字符串列表上。

说明

100 XP
  • 在对 map() 的调用中,传入一个将字符串 '!!!' 连接到字符串 item 后的 lambda 函数;同时传入字符串列表 spells。将返回的映射对象赋给 shout_spells。
  • 将 shout_spells 转换为列表并打印该列表。