MST

星途 面试题库

面试题:Python函数式编程之高阶函数应用

请使用Python的函数式编程方式,利用高阶函数(如map、filter等)实现一个功能:给定一个整数列表,返回列表中所有偶数的平方值组成的新列表。例如,输入[1, 2, 3, 4],输出[4, 16]。请写出具体代码,并解释高阶函数在其中的作用。
11.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def square_even_numbers(lst):
    return list(map(lambda x: x ** 2, filter(lambda x: x % 2 == 0, lst)))

解释:

  1. filter函数是Python中的高阶函数,它的作用是对可迭代对象进行过滤。在这里filter(lambda x: x % 2 == 0, lst)使用匿名函数lambda x: x % 2 == 0作为过滤条件,遍历列表lst,筛选出所有偶数组成一个新的可迭代对象。
  2. map函数同样是高阶函数,它会对可迭代对象中的每个元素应用给定的函数。这里map(lambda x: x ** 2, ...)将前面filter筛选出的偶数可迭代对象中的每个元素应用lambda x: x ** 2函数,即求平方,生成一个新的可迭代对象。
  3. 最后使用list()将这个新的可迭代对象转换为列表返回。