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

如何在复杂列表推导式中添加print语句输出number?

在质数列表推导式中添加输出语句的方法

列表推导式本质是表达式,没法直接塞print这种语句,但可以用小技巧实现输出需求:

只输出最终筛选出的质数

修改成下面的代码,既保留原有的质数生成逻辑,又能输出每个被选中的质数:

prime_numbers = [
    (print(number), number)[1]
    for number in range(2, 101) 
    if all(number % div != 0 for div in range(2, int(number**0.5) + 1))
]

原理是利用元组的求值顺序:先执行print(number)输出数字,再取元组的第二个元素number作为列表的元素,完全不影响原列表的生成结果。

输出所有遍历到的数字(不管是不是质数)

如果想看到整个遍历过程,把print放到条件判断里,这样每一个2到100的数都会被输出,再筛选质数:

prime_numbers = [
    number for number in range(2, 101) 
    if (print(number), all(number % div != 0 for div in range(2, int(number**0.5) + 1)))[1]
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:08:09