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