栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python3小知识|三种办法解决split结果包含空字符串的问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python3小知识|三种办法解决split结果包含空字符串的问题

加入有如下字符串需要进行分割:

s = "abc,,,fefdaf,,,123fad,,fsdfa,,,"

使用str类的split函数,得到如下结果:

会出现很多 空字符串,有时候肯定是不希望结果也包含此种内容的。那该怎么把这些空的字符串删除掉?

一.列表推导式

使用列表推导式,加个判断即可,简写如下:

[x for x in s.split(',') if x]

结果如图:

没有空格了,完美解决。

二.使用filter高阶函数

和上面的区别不大,代码简写如下:

list(filter(None,s.split(',')))

结果如图:

可以看到,与上面的列表推导式的结果一致。

三.使用正则表达式

仔细观察后,可以发现,有用的字符串包含了[0-9]、[a-z]之间的字符,根据这个特征,可以直接进行提取:

import re
re.findall('[a-z0-9]+',s)

结果如图:

这种方式最为灵活多变,可以处理很多情况,也是我最喜欢用的。

当然,也可以用字符替换的方式,这里使用str类的maketrans方法进行转换:

table = str.maketrans(',',' ')
 s.translate(table).split()

结果如图:

当然,还可以进行引申,例如有如下字符串:

s = "This is a (test) !"

希望可以获取()里面的分割,代码如下:

table = str.maketrans('()','  ')
s.translate(table).split()

结果如图:

关于 maketrans方法的使用,可以自行谷歌,在此不做延伸,感谢阅读。

AD:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290782.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号