盘点一个字符串处理问题(拆分英文文本)

Python爬虫与数据挖掘

共 2077字,需浏览 5分钟

 ·

2022-05-16 15:15

点击上方“Python共享之家”,进行关注

回复“资源”即可获赠Python学习资料

明朝望乡处,应见陇头梅。

大家好,我是皮皮。

一、前言

前几天在Python最强王者群有个叫【老松鼠】的粉丝问了一道关于字符串处理问题,如下图所示。

原文本如下所示:

比如"WeLovePython"
转化为为"We love python"

意思就是输出的字符串,第一个是大写,后面全部是小写。

二、实现过程

这里【冷喵】给了一个思路:挨个循环 如果是大写字母检查前面有没有空格 没有空格就加一个 最后把开头的那个空格去掉。这里【瑜亮老师】给了一份代码,如下图所示:

# coding:utf-8

# @Time : 2022/5/4 11:46
# @Author: 皮皮
# @公众号: Python共享之家
# @website : http://pdcfighting.com/
# @File : 字符串.py
# @Software: PyCharm
text = "WeLovePython"
res = ''.join([" "+i if i.isupper() else i for i in text]).strip()
print(res)

思路:如果是大写字母就变成空格+大写,否则就不变。这个代码亲测好使,运行之后结果如下。

这里确实是实现了单词的拆分,每个单词的首字母大写了。不过有个细节需要注意下,题目的要求是除了第一个字母大写外,后面要变小写。所以目前是解决了一半,还有一半需要继续解决。

这里【冷喵】给了一份代码,如下所示:

text = "WeLovePython"
res = ''.join([" " + i if i.isupper() else i for i in text]).strip()
print(res)
b = res[0] + ''.join([i.lower() for i in res[1:]])
print(b)

代码运行之后,结果如下图所示:

【月神】后来在这个代码的基础上,也给了一份代码,如下所示:

text = "WeLovePython"
res = text[0] + ''.join([" " + i if i.isupper() else i for i in text[1:]]).lower()
print(res)

res = ''.join([" " + i if i.isupper() else i for i in text]).strip().capitalize()
print(res)

一共两种方法。

后来【瑜亮老师】也补充了一份代码,思路一致的,具体实现上有所变形。思路:先取出首字母,然后剩余的小写不用动,大写直接变成空格+小写。

text = "WeLovePython"
res1 = text[0] + ''.join([" " + i.lower() if i.isupper() else i.lower() for i in text[1:]])
print(res1)

后来【冯诚】也给了一个代码,本质上是一样的,如下所示。

text = "WeLovePython"
res = ''.join([" "+i if i.isupper() else i for i in text]).strip()
res1=res[:1]+res[1:].lower()
res1

后来【月神】还给了一份正则表达式的代码,有点新奇。

import re

text = "WeLovePython"
result = re.sub(r'\w[A-Z]', lambda x: ' '.join(x.group(0).lower()), text)
print(result)

对正则表达式不熟悉的小伙伴,理解起来还是有点难懂的。这里稍微拆解了下,帮助大家理解,如下图所示:

三、总结

大家好,我是皮皮。这篇文章主要盘点一个字符串处理问题(拆分英文文本),文中给出了五个方法,思路基本上都是一致的,如果你还有其他方法,也欢迎大家积极尝试,一起学习,记得分享给我哦。

最后感谢粉丝【老松鼠】提问,感谢【冷喵】、【逸】、【冯诚】、【瑜亮老师】和【月神】在运行过程中给出的思路和代码建议,感谢粉丝【dcpeng】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【

万水千山总是情,点个【在看】行不行

浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报