Python列表遍历与条件判断的基础写法

阿澈
阿澈
发布时间:2026-11-07 | 14人浏览过
原创

系统讲解Python中列表遍历与条件判断的基础结合方式,包含单条件筛选、多分支分类、索引遍历及避坑指南,配合完整代码示例与架构图解。

在Python中处理一组数据时,最常见的需求就是逐一查看列表中的每一项,并根据每项的内容决定执行什么操作。本文将直接讲解如何将for循环与if条件语句配合使用,涵盖从单项筛选、多条件分支到带下标定位的典型写法,帮助你写出结构清晰且符合规范的数据处理代码。

一、基本结构:for循环与if单分支筛选

当我们需要从一个已有列表中挑出符合特定要求的元素时,标准做法是使用for ... in ...结构取出每个元素,然后在循环体内部使用if判断是否满足条件。只有判断结果为真时,缩进块内的代码才会执行。

# 筛选出列表中的偶数并打印
numbers = [12, 7, 19, 24, 30, 5]

for num in numbers:
    if num % 2 == 0:
        print(f"找到偶数: {num}")
示例运行输出
找到偶数: 12
找到偶数: 24
找到偶数: 30

代码中的变量num在每次循环时被赋值为列表里的当前元素。缩进表示层次关系:if语句位于for循环内部,而print又位于if判断内部,这意味着只有当num % 2 == 0成立时,屏幕上才会输出该数值。

Python列表遍历与条件判断的基础写法
图1:列表单项依次流经条件判断的执行步骤

二、多分支分类:if-elif-else处理不同区段

在实际业务中,我们通常需要根据元素的不同属性将数据分流,而不是简单地过滤。这时可以在for内部嵌入包含elif和else的完整条件判断链。

# 根据分数值对学生进行评级分类
scores = [95, 82, 67, 58, 74]

for score in scores:
    if score >= 90:
        grade = "优秀"
    elif score >= 70:
        grade = "良好"
    elif score >= 60:
        grade = "及格"
    else:
        grade = "待提升"
    print(f"成绩: {score} -> 评定: {grade}")
示例运行输出
成绩: 95 -> 评定: 优秀
成绩: 82 -> 评定: 良好
成绩: 67 -> 评定: 及格
成绩: 58 -> 评定: 待提升
成绩: 74 -> 评定: 良好

这段代码展示了互斥分支的执行机制:针对列表中的每一个数值,Python会从上至下依次测试条件,一旦某个条件成立,便执行对应的赋值语句,并立刻跳出整个判断链,进入下一次循环。

Python列表遍历与条件判断的基础写法
图2:单项元素在多分支结构中的路由匹配模式

三、带索引的条件遍历:使用enumerate()

基础的for item in list只能直接拿到元素值。但在很多场景下,我们还需要知道这个元素处于列表的第几个位置(索引),例如定位某个特定数据所在的序号。

此时推荐使用内置函数enumerate(),它可以同时返回当前索引和元素值,比手动维护计数变量更加规范安全。

# 找出所有包含告警关键词的日志及其对应行号
logs = ["INFO: 启动正常", "WARN: 内存占用偏高", "INFO: 接收请求", "ERROR: 数据库断开"]

for index, log in enumerate(logs):
    if "WARN" in log or "ERROR" in log:
        print(f"行号 [{index}] 异常事件 -> {log}")
示例运行输出
行号 [1] 异常事件 -> WARN: 内存占用偏高
行号 [3] 异常事件 -> ERROR: 数据库断开
关键原则:不要在遍历过程中直接删除列表元素
使用循环处理列表时,如果满足条件就在原列表上调用list.remove()或del,会导致列表长度改变、内部元素整体前移,造成部分数据被直接跳过,产生难以察觉的隐蔽错误。
Python列表遍历与条件判断的基础写法
图3:原地修改原列表与创建新列表承接数据的对比

四、实际应用模式与选型总结

掌握了循环和条件的语法后,在实际写代码时主要有三种落地模式。请根据业务诉求是“做动作”、“筛选数据”还是“分类归总”来选择对应的写法:

  • 仅执行操作(打印、发送请求):使用标准的for ... in ...: if ...:,不需要额外存储容器。
  • 构建过滤后的新列表:在循环开始前初始化一个空列表filtered = [],通过判断后使用filtered.append(item)装入目标数据。当过滤逻辑较简单时,也可以进一步使用列表推导式[x for x in list if condition]替代。
  • 寻找满足条件的第一个元素即停止:在if执行块的末尾加上break语句,避免不必要的后续循环,节省计算开销。
Python列表遍历与条件判断的基础写法
图4:Python列表遍历与条件判断的三种核心模式总结

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表