• python中删除list的特定值的元素的方法


    错误示范

    写python时常常会遇到想删除list中的特定值的元素的情况,但如果用一个循环遍历的话显然是行不通的,比如

    for i in range(len(list_i)):
        if list_i[i] == value:
            list_i.pop(i)

    或者

    for i in list_i:
        if i == value:
            list_i.remove(i)

    都会出现问题,因为pop()或remove()之后list已经发生改变,继续迭代会出现问题。

    因此,由于list底层基于线性表(数组)的特性,不能使用这种方法删除,要用其他方法。

    正确写法

    方法一:

    while value in list_i:
        list_i.remove(value)

    优点:简单粗暴

    缺点:不是一次遍历,慢

    方法二:(推荐)

    j = 0 
    for i in range(len(list_i)):
        if list_i[j] == value:
            list_i.pop(j)
        else:
            j += 1

    优点:一次遍历,快

  • 相关阅读:
    正则笔记
    html5的选择器
    原生js操作dom备忘
    avalon使用笔记
    webpack2配置备份
    美女图片小爬虫,嘿嘿
    JS原型和继承
    localstorage sessionstorage cookie 备忘
    gulp配置文件备份
    node代码片段
  • 原文地址:https://www.cnblogs.com/sbj123456789/p/11252718.html
Copyright © 2020-2023  润新知