广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    python删除列表中的某个值的全部元素

    来源:网络收集  点击:  时间:2024-03-09
    【导读】:
    学过python基础的都知道,python中列表的移除元素值的方法remove只能删除最前面的改元素。工具/原料more电脑Python环境方法/步骤1/6分步阅读

    首先我们先演示一下Python列表的remove的效果:代码如下

    d=

    d.remove(1)

    print(d)

    可以看到的,这里删除1,只删除了下标最小的那个元素

    2/6

    实现方法1:先将列表转换为set,以此来去掉重复元素,然后转换为list,再排序sorted一下(排序的原因是转换为set之后,元素的顺序不一定还是原来的顺序)

    代码入下:

    #删除列表中更某个值得所有元素,可以利用python中set的元素唯一性,先将entry转换为set再删除

    entry=

    entry=list(set(entry))

    entry.remove(1)

    print(entry)

    print(list(set(entry)))

    #print(list(set(entry)).sort())

    print(sorted(list(set(entry))))

    3/6

    第二种方式:利用for循环遍历找到要删除的元素,然后删除它(但是要注意的,遍历的时候应该从后往前遍历,否则会出现列表越界,因为删除元素之后,列表的最大下标也变了)

    下面演示错误的方法:(代码复制到这过来缩进会变,记得修改)

    c=

    for i in range(len(c)):

    if c==1:

    c.remove(1)

    print(c)

    4/6

    然后下面给出第二种方法的正确代码:

    c=

    for i in range(len(c)-1,-1,-1):

    if c==1:

    c.remove(1)

    print(c)

    5/6

    第三种方法,使用列表解析式的方法实现,代码如下:

    entry=

    entry= for i in range(0,len(entry)) if entry!=1]

    print(entry)

    代码解析

    for i in range(0,len(entry)) 循环遍历

    if entry!=1循环遍历中判断

    entry代表对取出来的原列表相关值操作

    最后返回一个新列表

    6/6

    第四种方式:利用filter和lambda表达式,代码如下:

    arr=

    print(list(filter(lambda x:x!=1,arr)))

    注意事项

    注意for循环中remove中下标的问题

    码字不易,记得点赞投票哦

    PYTHON列表
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.ff371.cn/art_302389.html

    ©2019-2020 http://www.ff371.cn/ 国ICP备20009186号05-22 07:49:52  耗时:0.030