You need to enable JavaScript to run this app. Python中如何在列表推导式内检查函数返回值条件
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何在列表推导式内检查函数返回值条件

你提到的需求完全可以通过列表推导式实现,甚至可以避免两次调用目标函数、减少不必要的性能损耗,具体分两种常见实现方案:

方案1:Python 3.8及以上版本(推荐)

使用海象运算符:=缓存函数返回值,仅调用一次d(x),先判断条件再存入符合要求的结果:

number_list = [res for x in range(1, 10001) if (res := d(x)) < 10000]

方案2:Python 3.8以下版本兼容写法

通过单层嵌套遍历的方式缓存函数返回值,同样只会执行一次d(x):

number_list = [res for x in range(1, 10001) for res in [d(x)] if res < 10000]

额外说明:你给出的参考写法本身也可以正常运行,只是会对每个x执行两次d(x),如果d(x)是计算成本较高的函数,更推荐使用上面两种优化写法。


内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 05:42:02