我正在寻找一种方法来替换句子中的字符,因为我们有:
sentence = "hello - world!: ¡hola - mundo"
我需要像那样 - >你好世界hola mundo
我能做到
sentence.replace('!' , '' )
sentence.replace(':' , '' )
.
.
.
但它似乎不是一个好的解决方案
到目前为止,我有这个,但它并没有取代我想要的东西:
for ch in ["!",":"]:
if ch in sentence:
sentence = sentence.replace(ch," " + ch)
有关如何使其工作的任何建议? 谢谢。
答案 0 :(得分:0)
您可以制作要保留的所有字符的set
,然后使用生成器表达式来保留所有这些字母。或者相反,要移除set
个字符并保留除此之外的所有字符。 string
library有一些有用的东西,例如string.ascii_lowercase
或string.punctuation
。
>>> import string
>>> keep = set(string.ascii_lowercase + string.ascii_uppercase + ' ')
>>> ''.join(i for i in sentence if i in keep)
'hello world hola mundo'
答案 1 :(得分:0)
你可以用没有字母字符的方式拆分你的句子,加入那些len>0
拒绝''
的句子:
>>> import re
>>> ' '.join([i for i in re.split(r'\W',sentence) if len(i)])
'hello world hola mundo'