2014-11-05 4 views
1

Я искал способ заменить символы в предложении, при условии, что мы имеем:Заменить символы в строке Python

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

Мне нужно это как то -> привет мир Hola Mundo

я могу сделать

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

но это не кажется хорошим решением

до сих пор у меня есть, но это не заме e что я хочу:

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

любые предложения, как заставить его работать? Спасибо.

+1

Там хорошее обсуждение этого здесь: http://stackoverflow.com/questions/ 10017147/питон замены-символов-в-строке – nofinator

ответ

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' 
0

вы можете разделить ваше предложение ни с алфавитом и присоединиться к тем, которые имеют len>0 для отбросов '':

>>> import re 
>>> ' '.join([i for i in re.split(r'\W',sentence) if len(i)]) 
'hello world hola mundo' 
Смежные вопросы