You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python 3.x的Lambda函数在map中过滤负数并计算正数平方

解决方法:过滤负数并计算正数平方(基于map与Lambda)

规范实现(结合filter与map)

虽然题目要求使用map(),但更合理的做法是先通过filter()筛选出正数,再用map()计算平方,逻辑清晰且效率更高:

array = [1, -2, 3, -4, 5]
a = list(map(lambda x: x ** 2, filter(lambda x: x > 0, array)))
# 结果:[1, 9, 25]

严格符合题目要求(仅用map的Lambda)

如果必须仅通过a = map(----, array)的形式实现,横线处的Lambda需要包含条件判断:对正数返回平方,负数返回占位值(如None),后续再过滤掉占位值即可得到目标结果:

array = [1, -2, 3, -4, 5]
# 横线处填入的Lambda函数
a = list(map(lambda x: x ** 2 if x > 0 else None, array))
# 过滤掉None,得到最终结果
a = [num for num in a if num is not None]
# 结果:[1, 9, 25]

补充说明

map()本身仅负责对数组中每个元素执行转换操作,无法直接排除元素,因此第二种方式需要额外步骤处理占位值。实际开发中优先推荐第一种方式,它更符合函数式编程的拆分思想,避免对负数做无效计算。

内容的提问来源于stack exchange,提问作者Muhammad Ashir Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 03:45:39