找回密码
 会员注册
查看: 37|回复: 0

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

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71068
发表于 2024-9-5 20:40:42 | 显示全部楼层 |阅读模式
目录1.利用过滤器筛选空内容(推荐——删除指定元素【含删除空内容】)2.利用列表生成式(推荐——删除指定元素【含删除空内容】)3.利用计数器和remove删除(不推荐——删除指定元素【含删除空内容】)看看下述代码:celebrities=['','陈凯歌','','徐克','林超贤','','','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','','朱亚文#梅生','','李晨#余从戎','胡军#雷公','韩东君#平河','','','张涵予#宋时轮','','黄轩#毛岸英']print(celebrities)12输出:['','陈凯歌','','徐克','林超贤','','','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','','朱亚文#梅生','','李晨#余从戎','胡军#雷公','韩东君#平河','','','张涵予#宋时轮','','黄轩#毛岸英']1当你遇见这种情况,有哪些方法来去除里面的空内容呢(即'')?1.利用过滤器筛选空内容(推荐——删除指定元素【含删除空内容】)1.1删除空内容(方法一):celebrities=['','陈凯歌','','徐克','林超贤','','','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','','朱亚文#梅生','','李晨#余从戎','胡军#雷公','韩东君#平河','','','张涵予#宋时轮','','黄轩#毛岸英']print(list(filter(None,celebrities)))123输出:['陈凯歌','徐克','林超贤','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','朱亚文#梅生','李晨#余从戎','胡军#雷公','韩东君#平河','张涵予#宋时轮','黄轩#毛岸英']11.2删除空内容(方法二):需要配合lambda表达式一起使用!celebrities=['','陈凯歌','','徐克','林超贤','','','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','','朱亚文#梅生','','李晨#余从戎','胡军#雷公','韩东君#平河','','','张涵予#宋时轮','','黄轩#毛岸英']print(list(filter(lambdax:x!='',celebrities)))123输出:['陈凯歌','徐克','林超贤','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','朱亚文#梅生','李晨#余从戎','胡军#雷公','韩东君#平河','张涵予#宋时轮','黄轩#毛岸英']12.3删除指定内容:letters=['a','b','c','a','b','a','a','d']print(f'原列表内容:{letters}')print('删除元素a:',list(filter(lambdax:x!='a',letters)))123输出:原列表内容:['a','b','c','a','b','a','a','d']删除元素a:['b','c','b','d']12注:此方法既可以删除空元素,也可以删除指定元素~2.利用列表生成式(推荐——删除指定元素【含删除空内容】)2.1删除空内容(方法一):celebrities=['','陈凯歌','','徐克','林超贤','','','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','','朱亚文#梅生','','李晨#余从戎','胡军#雷公','韩东君#平河','','','张涵予#宋时轮','','黄轩#毛岸英']print([celebrityforcelebrityincelebritiesifcelebrity])123输出:['陈凯歌','徐克','林超贤','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','朱亚文#梅生','李晨#余从戎','胡军#雷公','韩东君#平河','张涵予#宋时轮','黄轩#毛岸英']12.2删除空内容(方法二):celebrities=['','陈凯歌','','徐克','林超贤','','','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','','朱亚文#梅生','','李晨#余从戎','胡军#雷公','韩东君#平河','','','张涵予#宋时轮','','黄轩#毛岸英']print([celebrityforcelebrityincelebritiesifcelebrity!=''])123输出:['陈凯歌','徐克','林超贤','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','朱亚文#梅生','李晨#余从戎','胡军#雷公','韩东君#平河','张涵予#宋时轮','黄轩#毛岸英']12.3删除指定内容:letters=['a','b','c','a','b','a','a','d']print(f'原列表内容:{letters}')print('删除元素a:',[letterforletterinlettersifletter!='a'])123输出:原列表内容:['a','b','c','a','b','a','a','d']删除元素a:['b','c','b','d']12注:此方法既可以删除空元素,也可以删除指定元素~3.利用计数器和remove删除(不推荐——删除指定元素【含删除空内容】)3.1删除空内容:#(Counter返回的是一个字典)fromcollectionsimportCountercelebrities=['','陈凯歌','','徐克','林超贤','','','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','','朱亚文#梅生','','李晨#余从戎','胡军#雷公','韩东君#平河','','','张涵予#宋时轮','','黄轩#毛岸英']num=Counter(celebrities)['']#计算celebrities中空内容的个数foriinrange(num):celebrities.remove('')#一次remove只能删除一个值print(celebrities)123456789输出:['陈凯歌','徐克','林超贤','吴京#伍千里','易烊千玺#伍万里','段奕宏#谈子为','朱亚文#梅生','李晨#余从戎','胡军#雷公','韩东君#平河','张涵予#宋时轮','黄轩#毛岸英']13.2删除指定内容:fromcollectionsimportCounterletters=['a','b','c','a','b','a','a','d']num=Counter(letters)['a']#计算letters中元素a的个数foriinrange(num):letters.remove('a')#一次remove只能删除一个值print(letters)1234567输出:原列表内容:['a','b','c','a','b','a','a','d']删除元素a:['b','c','b','d']12注:此方法既可以删除空元素,也可以删除指定元素~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 05:23 , Processed in 0.477099 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表