python 一次性删除列表(list)的空白元素(空内容) 或者 一次性删除列表(list)中的指定元素 您所在的位置:网站首页 pycharm删除空行 python 一次性删除列表(list)的空白元素(空内容) 或者 一次性删除列表(list)中的指定元素

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

2024-03-05 03:51| 来源: 网络整理| 查看: 265

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

看看下述代码:

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']

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有