python 一次性删除列表(list)的空白元素(空内容) 或者 一次性删除列表(list)中的指定元素

2024-02-26 1092阅读

温馨提示:这篇文章已超过406天没有更新,请注意相关的内容是否还可用!

目录

  • 1. 利用过滤器筛选空内容(推荐——删除指定元素【含删除空内容】)
  • 2. 利用列表生成式(推荐——删除指定元素【含删除空内容】)
  • 3. 利用计数器和 remove 删除(不推荐——删除指定元素【含删除空内容】)

    看看下述代码:

    python 一次性删除列表(list)的空白元素(空内容) 或者 一次性删除列表(list)中的指定元素
    (图片来源网络,侵删)
    celebrities = ['', '陈凯歌', '', '徐克', '林超贤', '', '', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '', '朱亚文#梅生', '', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '', '', '张涵予#宋时轮', '', '黄轩#毛岸英']
    print(celebrities)
    

    输出:

    ['', '陈凯歌', '', '徐克', '林超贤', '', '', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '', '朱亚文#梅生', '', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '', '', '张涵予#宋时轮', '', '黄轩#毛岸英']
    

    当你遇见这种情况,有哪些方法来去除里面的空内容呢(即 '')?


    1. 利用过滤器筛选空内容(推荐——删除指定元素【含删除空内容】)

    • 1.1 删除空内容(方法一):

      celebrities = ['', '陈凯歌', '', '徐克', '林超贤', '', '', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '', '朱亚文#梅生', '', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '', '', '张涵予#宋时轮', '', '黄轩#毛岸英']
      print(list(filter(None, celebrities)))
      

      输出:

      ['陈凯歌', '徐克', '林超贤', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '朱亚文#梅生', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '张涵予#宋时轮', '黄轩#毛岸英']
      
    • 1.2 删除空内容(方法二):

      需要配合 lambda 表达式一起使用!

      celebrities = ['', '陈凯歌', '', '徐克', '林超贤', '', '', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '', '朱亚文#梅生', '', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '', '', '张涵予#宋时轮', '', '黄轩#毛岸英']
      print(list(filter(lambda x: x != '', celebrities)))
      

      输出:

      ['陈凯歌', '徐克', '林超贤', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '朱亚文#梅生', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '张涵予#宋时轮', '黄轩#毛岸英']
      
    • 2.3 删除指定内容:

      letters = ['a', 'b', 'c', 'a', 'b', 'a', 'a', 'd']
      print(f'原列表内容:{letters}')
      print('删除元素a:', list(filter(lambda x: x != 'a', letters)))
      

      输出:

      原列表内容:['a', 'b', 'c', 'a', 'b', 'a', 'a', 'd']
      删除元素a: ['b', 'c', 'b', 'd']
      

      注:此方法既可以删除空元素,也可以删除指定元素~

      2. 利用列表生成式(推荐——删除指定元素【含删除空内容】)

      • 2.1 删除空内容(方法一):
        celebrities = ['', '陈凯歌', '', '徐克', '林超贤', '', '', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '', '朱亚文#梅生', '', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '', '', '张涵予#宋时轮', '', '黄轩#毛岸英']
        print([celebrity for celebrity in celebrities if celebrity])
        
        输出:
        ['陈凯歌', '徐克', '林超贤', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '朱亚文#梅生', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '张涵予#宋时轮', '黄轩#毛岸英']
        
      • 2.2 删除空内容(方法二):
        celebrities = ['', '陈凯歌', '', '徐克', '林超贤', '', '', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '', '朱亚文#梅生', '', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '', '', '张涵予#宋时轮', '', '黄轩#毛岸英']
        print([celebrity for celebrity in celebrities if celebrity != ''])
        
        输出:
        ['陈凯歌', '徐克', '林超贤', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '朱亚文#梅生', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '张涵予#宋时轮', '黄轩#毛岸英']
        
      • 2.3 删除指定内容:
        letters = ['a', 'b', 'c', 'a', 'b', 'a', 'a', 'd']
        print(f'原列表内容:{letters}')
        print('删除元素a:', [letter for letter in letters if letter != 'a'])
        
        输出:
        原列表内容:['a', 'b', 'c', 'a', 'b', 'a', 'a', 'd']
        删除元素a: ['b', 'c', 'b', 'd']
        

        注:此方法既可以删除空元素,也可以删除指定元素~

        3. 利用计数器和 remove 删除(不推荐——删除指定元素【含删除空内容】)

        • 3.1 删除空内容:

          # (Counter 返回的是一个字典)
          from collections import Counter
          celebrities = ['', '陈凯歌', '', '徐克', '林超贤', '', '', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '', '朱亚文#梅生', '', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '', '', '张涵予#宋时轮', '', '黄轩#毛岸英']
          num = Counter(celebrities)['']  # 计算 celebrities 中空内容的个数
          for i in range(num):
              celebrities.remove('')  # 一次 remove 只能删除一个值
          print(celebrities)
          

          输出:

          ['陈凯歌', '徐克', '林超贤', '吴京#伍千里', '易烊千玺#伍万里', '段奕宏#谈子为', '朱亚文#梅生', '李晨#余从戎', '胡军#雷公', '韩东君#平河', '张涵予#宋时轮', '黄轩#毛岸英']
          
        • 3.2 删除指定内容:

          from collections import Counter
          letters = ['a', 'b', 'c', 'a', 'b', 'a', 'a', 'd']
          num = Counter(letters)['a']  # 计算 letters 中元素 a 的个数
          for i in range(num):
              letters.remove('a')  # 一次 remove 只能删除一个值
          print(letters)
          

          输出:

          原列表内容:['a', 'b', 'c', 'a', 'b', 'a', 'a', 'd']
          删除元素a: ['b', 'c', 'b', 'd']
          

          注:此方法既可以删除空元素,也可以删除指定元素~

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]