zoukankan      html  css  js  c++  java
  • python使用for循环遍历删除列表符合条件的数据有漏删

    代码如下:

    # 创建一个列表list
    list = [1,1,2,525,2,633663,6363,6,6,6,3,3,35,45,6,66,6,6,6,6,3]
    
    # 循环列表里的元素
    for i in list:
        if i == 6:
            # 如果列表里的元素等于6,删除该元素
            list.remove(i)
    print(list)

    运行结果:
    [1, 1, 2, 525, 2, 633663, 6363, 3, 3, 35, 45, 66, 6, 6, 6, 3]

    结果,列表符合条件的数据未删除干净

    分析原因:
    for循环中,i代表的是最开始就确定的列表里所有的元素,删除一个元素后,列表里的元素位置发生改变,后一位元素自动补位,补位的这个元素就躲过了被删除命运

    解决方法:直接把符合我们要求的元素保存到新的表格里即可,不能同时遍历和删除列表的元素

    如下代码:

    list = [1,1,2,525,2,633663,6363,6,6,6,3,3,35,45,6,66,6,6,6,6,3]
    list1=[]
    for i in list:
        # 如果元素不等于6,加入list1列表
        if i != 6:
            list1.append(i)
    print(list1)

    运行结果:

    [1, 1, 2, 525, 2, 633663, 6363, 3, 3, 35, 45, 66, 3]

  • 相关阅读:
    python学习笔记——拾
    python学习笔记——玖
    Python 实现栈与队列
    Vijos1774 机器翻译 [模拟]
    Vijos1788 第K大 [模拟]
    Python 序列求和
    HDU 2102 A计划 DFS与BFS两种写法 [搜索]
    Python 多组输入
    Python 文件读写
    HDU 2068 RPG错排 [错排公式]
  • 原文地址:https://www.cnblogs.com/will-wu/p/14610086.html
Copyright © 2011-2022 走看看