Замена в строке двойного пробела на одинарный
📁 строка, python, работа
У меня есть строка:
str = 'A l a m a k o t a'Как видно в строке, между буквами одного слова у меня один пробел, между словами два.
Хочу преобразовать строку в :
'Ala ma kota'Пытался решить так, но потерпел крах:
Cначала меняю двойные пробелы на '`':
for i in range(len(str)-1): if str[i] == ' ' and str[i+1]== ' ': comment.replace('str[i]', '`') comment.replace('str[i + 1]', '`')Потом удаляю одинарные:
str.replace(' ', '')И в конце заменяю '`' на пробел:
str.replace('`',' ')Но вся эта конструкция не работает. Как можно решить данную задачу?
Не называйте переменные именами встроенных типов!
Можно воспользоваться регулярными выражениями, заменив первый пробел ни на что и сохранив второй
import reregex = r""\s(\s)?""test_str = ""'A l a m a k o t a'""subst = ""\\1""print(re.sub(regex, subst, test_str)) # 'Ala ma kota'а вот так можно заменить любое кол-во пробелов, больше одного, на один пробел
regex = r""\s((\s)(\s+)?)?""subst = ""\\2""result = re.sub(regex, subst, test_str) Войдите чтобы оставить ответ