• python循环删除列表元素


    如果我们用最常用的方法使用for循环正向遍历列表元素进行删除,结果如下:

    一、索引遍历列表循环删除:

     运行结果报错:因为for语句中range()方法按照列表a的长度生成了有序整数序列,但在遍历过程中删除了列表元素,实际列表长度已发生改变,而遍历的序列仍是按原始列表的长度遍历的,导致索引超出范围

    二、直接遍历列表元素循环删除(正向遍历):

     运行结果:未按要求删除所有值为4的元素

    因为当删除一个元素后该元素后面未遍历的元素均会向前移动一个位置,导致后面的元素索引值-1,下一个要遍历的元素移动到当前已遍历元素的位置,导致漏删。

    正向遍历:删除过程中未遍历的元素索引位置不停在发生改变

    循环删除列表所有元素的正确方法:

    1、while循环删除:

    2、反向遍历列表循环删除:

    从列表末尾开始遍历元素时,删除一个元素后面的元素向前移动一个位置,但后面的元素已经遍历过了所以不会存在漏删的情况

     

    总结:

    1、不能通过索引遍历循环删除元素,因为删除元素后列表实际长度在发生改变;

    2、通过直接遍历元素删除时,必须反向遍历删除,因为删除元素后,索引位置发生改变的是已遍历过的元素,对未遍的元素无影响,不存在漏删的情况;

  • 相关阅读:
    linux定时任务crontab介绍
    kafka跨集群同步方案
    hadoop配置参数速查大全
    kafka生产者消费者示例代码
    storysnail的Linux串口编程笔记
    storysnail的Windows串口编程笔记
    botbrew下写glib2程序
    codeblocks配置GLUT
    使用Code::blocks在windows下写网络程序
    使用pango-Cairo列出系统中的有效字体
  • 原文地址:https://www.cnblogs.com/Rachel-84351228/p/13646079.html
Copyright © 2020-2023  润新知