Python循环遍历数组指定索引范围时跳过特定索引的实现方法
列遍历跳过指定索引的实现方案
问题原因
之前添加break判断无法生效的核心原因是关键字用错:
break会直接终止当前所在层级的整个循环,后续所有待遍历的列索引都不会再执行处理- 要实现「跳过当前索引、继续处理下一个索引」的逻辑,需要使用
continue关键字
实现步骤
不需要修改原有variable生成的前置逻辑,只需要在variable遍历循环的业务逻辑起始位置增加跳过判断即可:
- 定义需要跳过的
variable值集合:3、20、22 - 每次循环拿到当前
variable值时,先判断是否属于待跳过集合 - 命中待跳过值时直接执行
continue,跳过当前轮次的逐行校验、绘图逻辑,直接进入下一个索引的遍历 - 原有逐行校验数据有效性的逻辑完全不需要改动
调整后代码示例
# 外层为原有的variable遍历逻辑,前置variable生成代码无需改动 for variable in range(3, 25): # 新增:跳过指定索引的判断,放在所有业务逻辑最前端 if variable in {3, 20, 22}: continue # 以下为原有的逐行数据校验逻辑,无需修改 skipsw = 0 for row in range(len(self.CSVResult)): if abs(self.CSVResult[row][variable-1]) < 1.2E20: skipsw = 1 break # 后续原有绘图、输出文件逻辑保持不变 # ...
注意事项
- 使用集合存储待跳过索引做成员判断,相比列表遍历匹配性能更高,适合大体量CSV数据处理场景
- 跳过判断必须放在逐行遍历、计算逻辑之前,避免执行无效的IO、计算操作浪费资源
内容的提问来源于stack exchange,提问作者Zulu Time
相关产品推荐
相关产品推荐

