美文网首页
python 快速遍历同时进行删除

python 快速遍历同时进行删除

作者: 晋江是渣渣 | 来源:发表于2018-04-24 15:35 被阅读0次

    初学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]
    

    相关文章

      网友评论

          本文标题:python 快速遍历同时进行删除

          本文链接:https://www.haomeiwen.com/subject/cpjjlftx.html