持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情
列表上的高阶运算
在第 4.4 节中,我们引入了高阶编程的概念。对于列表来说,这可能特别方便,如图 5=5 所示。
函数apply_to_each称为高阶函数,因为它具有本身就是函数的参数。第一次调用它时,它通过将一元内置函数abs应用于每个元素来改变L。第二次调用它时,它会对每个元素应用类型转换。第三次调用它时,它会将每个元素替换为应用使用 lambda 定义的函数的结果。它打印
Python有一个内置的高阶函数map,它类似于,但比Eigure 5-5中定义的apply_to_each函数更通用。在最简单的形式中,映射的第一个参数是一元函数(即只有一个参数的函数),第二个参数是适合作为第一个参数的参数的任何有序值集合。它经常被用来代替列表理解。例如,列表
范围(10)
等价于范围 (10) 中 e 的 [str(e)]。
映射函数通常与 for 循环一起使用。在 for 循环中使用时,map 的行为类似于范围函数,因为它为循环的每次迭代返回一个值。这些值是通过将第一个参数应用于第二个参数的每个元素而生成的。例如,代码
打印
更一般地说,要映射的第一个参数可以是 n 个参数的函数,在这种情况下,它必须后跟 n 个后续的有序集合(每个集合的长度相同)。例如,代码
打印
练习:实现满足以下规范的函数。提示:在实现的正文中使用1ambda会很方便。