替换字符串Python中的字符

时间:2014-11-05 17:13:33

标签: python replace

我正在寻找一种方法来替换句子中的字符,因为我们有:

sentence = "hello - world!: ¡hola - mundo"

我需要像那样 - >你好世界hola mundo

我能做到

sentence.replace('!' , '' )
sentence.replace(':' , '' )
.
.
.

但它似乎不是一个好的解决方案

到目前为止,我有这个,但它并没有取代我想要的东西:

for ch in ["!",":"]:
        if ch in sentence:
            sentence = sentence.replace(ch," " + ch)

有关如何使其工作的任何建议? 谢谢。

2 个答案:

答案 0 :(得分:0)

您可以制作要保留的所有字符的set,然后使用生成器表达式来保留所有这些字母。或者相反,要移除set个字符并保留除此之外的所有字符。 string library有一些有用的东西,例如string.ascii_lowercasestring.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'