python - 是否可以在不使用任何导入的情况下从单词中拆分后缀
问题描述
使用正则表达式可以解决我的问题。但是是否可以将“暗示”一词拆分为“暗示”?难道不能使用这样的代码而不是分割标点符号而是后缀吗?
sentence = input()
punctuation = "!\"#$%&'()*+,-./:;<=>?@[\]^`{|}~"
print( "".join([c if c not in punctuation else f' {c} ' for c in sentence]).strip().split() )
解决方案
利用str.partition(sep)
在第一次出现 sep 时拆分字符串,并返回一个 3 元组,其中包含分隔符之前的部分、分隔符本身和分隔符之后的部分。如果未找到分隔符,则返回一个包含字符串本身的 3 元组,后跟两个空字符串。
string = 'information and affirmation and emotion'
pattern = 'tion'
out = ''
par = string.partition(pattern)
while par[1]: # pattern found?
out += ' '.join([par[0], par[1]])
par = par[2].partition(pattern)
print(out)
结果:
informa tion and affirma tion and emo tion
编辑 - 处理模式列表:
string = 'information and affirmation and emotion, trying and failing.'
pattern_list = ['***', 'tion', 'ing']
for pattern in pattern_list:
if pattern in string:
out = ''
par = string.partition(pattern)
while par[1]: # pattern found?
out += ' '.join([par[0], par[1]])
remainder = par[2]
par = par[2].partition(pattern)
string = ''.join([out, remainder])
print(''.join([out, remainder]))
结果:
informa tion and affirma tion and emo tion, try ing and fail ing.
推荐阅读
- python - 有没有办法使用 python 将嵌入式视频下载为 mp4 文件?
- css - 解决方法:有伪类?
- swift - 更新用户积分并将其存储到 userDefaults 时,我做错了什么?
- r - 使用 dplyr 将新列添加到 R 中的数据框
- python-3.x - 规范化列表python列表
- python - Manim 从边缘生长,宽度保持不变
- r - 从谷歌幻灯片中收集文本
- powerbi - 我想在 POWER BI 中找到两张卡片之间的区别,我不能使用度量,因为我在卡片上应用了过滤器
- ruby - 如何检查我的令牌是否在 Rails 上处于活动状态
- business-objects - Web Intelligence :聚合值的计数