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

如何实现Python列表中小于18的数字不被打印?

修正Python代码实现“跳过小于18的数字不打印”的需求

原代码问题分析

原代码逻辑完全偏离需求:当遍历到小于18的元素时,没有跳过该元素,反而复制了整个列表并打印,导致每次遇到小于18的元素就输出一次完整列表,最终得到5次重复的完整列表输出。

修正后的代码方案

方案1:基础遍历+条件判断(最直观)

直接遍历列表,仅打印大于等于18的元素:

x = [17, 15, 18, 21, 5, 6]
for y in x:
    if y >= 18:
        print(y)

运行输出:

18
21

方案2:先筛选再打印(适合需要复用筛选结果的场景)

先用列表推导式筛选出符合条件的元素,再遍历打印:

x = [17, 15, 18, 21, 5, 6]
valid_numbers = [num for num in x if num >= 18]
for num in valid_numbers:
    print(num)

如果需要一次性输出所有符合条件的元素,也可以直接打印筛选后的列表:

x = [17, 15, 18, 21, 5, 6]
print([num for num in x if num >= 18])

运行输出:

[18, 21]

原代码错误点总结

  • 条件判断逻辑写反:应该判断y >= 18才执行打印,而非y < 18
  • 多余的列表复制操作:y = x.copy()完全没必要,这会将整个列表赋值给y,导致打印完整列表而非单个元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:40:36