python 快速遍历同时进行删除

初学python,编制一个批量文件名重命名的程序时,需要对一个 list 进行筛选和删除。大概思路是用快速遍历并删除,但是实现的时候遇到了问题。原因是遍历时如果有删除操作会导致 list 的长度发生变化,但是 for 的遍历终点并不会根据实际长度实时刷新。
解决过程中想到了 list 首元素的下标会保持 0 不变,如果对列表进行反向遍历就不会发生越界的问题。如果删除第 i 个元素,那么刚才遍历过的原数列第 i+1 个元素只会被重复遍历一次,而这样的代价是可以接受的。

import os
fileList = os.listdir('./captures')
for i in range(len(fileList)-1 ,-1 ,-1)
  if fileList[i][-4:] != '.mp4' : //过滤掉非mp4格式的文件
    del fileList[i]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 2,475评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,778评论 0 5
  • 作者 张嘉芮 指导老师 刘艳 袁浩 郑鹏
    章鱼sjz阅读 836评论 0 1
  • 某一天,在网上冲浪时,我看到了弘丹老师的21天写作训练营,内心清晰的明白这就是我想要的,好像是最快的一次产生购买行...
    罒雨田阅读 189评论 1 0
  • 来南京住了42天了,从前对于南京的印象就是好妹妹说的18路公交车,从石鼓路到凤凰西街。是从无锡到南京的高铁票再从南...
    西西_7c65阅读 194评论 0 0