MST
星途 面试题库

面试题:Python中map、filter与reduce函数的嵌套与复杂应用

假设有一个列表,其中每个元素是一个包含两个数字的元组,例如[(1, 2), (3, 4), (5, 6)]。请使用map、filter和reduce函数组合实现以下操作:1. 首先使用map函数将每个元组中的两个数字相加;2. 然后使用filter函数过滤掉结果小于5的数字;3. 最后使用reduce函数计算剩余数字的平方和。请写出实现该功能的Python代码,并解释每一步的作用。
31.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
from functools import reduce

my_list = [(1, 2), (3, 4), (5, 6)]

# 使用map函数将每个元组中的两个数字相加
sum_numbers = list(map(lambda x: x[0] + x[1], my_list))
# 解释:map函数会对my_list中的每个元素(即每个元组)应用lambda函数,lambda函数将元组中的两个数字相加,返回一个可迭代对象,使用list转换为列表

# 使用filter函数过滤掉结果小于5的数字
filtered_numbers = list(filter(lambda x: x >= 5, sum_numbers))
# 解释:filter函数会对sum_numbers中的每个元素应用lambda函数,lambda函数判断元素是否大于等于5,返回一个可迭代对象,使用list转换为列表

# 使用reduce函数计算剩余数字的平方和
result = reduce(lambda x, y: x + y**2, filtered_numbers, 0)
# 解释:reduce函数会对filtered_numbers中的元素依次应用lambda函数,lambda函数将前一个累加结果x与当前元素y的平方相加,初始值为0

print(result)