Python列表遍历与条件判断的基础写法
系统讲解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成立时,屏幕上才会输出该数值。
图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会从上至下依次测试条件,一旦某个条件成立,便执行对应的赋值语句,并立刻跳出整个判断链,进入下一次循环。
图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,会导致列表长度改变、内部元素整体前移,造成部分数据被直接跳过,产生难以察觉的隐蔽错误。
图3:原地修改原列表与创建新列表承接数据的对比
四、实际应用模式与选型总结
掌握了循环和条件的语法后,在实际写代码时主要有三种落地模式。请根据业务诉求是“做动作”、“筛选数据”还是“分类归总”来选择对应的写法:
- 仅执行操作(打印、发送请求):使用标准的
for ... in ...: if ...:,不需要额外存储容器。 - 构建过滤后的新列表:在循环开始前初始化一个空列表
filtered = [],通过判断后使用filtered.append(item)装入目标数据。当过滤逻辑较简单时,也可以进一步使用列表推导式[x for x in list if condition]替代。 - 寻找满足条件的第一个元素即停止:在
if执行块的末尾加上break语句,避免不必要的后续循环,节省计算开销。
图4:Python列表遍历与条件判断的三种核心模式总结
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









