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

Python列表条件迭代疑问:两段代码为何输出结果不同?

问题分析与解决

为什么第二段代码没有输出?

你的第二段代码是直接遍历列表中的元素值,然后判断item % 2 != 0——也就是检查元素本身是不是奇数。但你的my_list里所有元素都是偶数(10、20、30...),这个条件永远不成立,所以不会有任何输出。

两段代码的逻辑差异

  • 第一段代码:遍历的是列表的索引(range(len(my_list))生成0到9的索引序列),判断index % 2 != 0(即索引为奇数,对应Python中从0开始计数的第2、4、6...个元素),这完全符合题目“显示奇数索引位置元素”的要求,所以能正常输出目标结果。
  • 第二段代码:遍历的是列表元素本身,判断的是元素是否为奇数,和题目要求的“索引位置”没有关系,逻辑完全偏离需求。

修正第二段代码的方法

如果想用遍历元素的方式实现需求,可以用enumerate()同时获取索引和元素:

my_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

for index, item in enumerate(my_list):
    if index % 2 != 0:
        print(item, end=" ")

或者用更简洁的Python切片写法(直接提取奇数索引的元素):

my_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print(' '.join(map(str, my_list[1::2])))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:52:05