Форум сайта python.su
Доброго времени суток.
Имеется задача: перевернуть все слова в строке, но оставить их на своем месте:
Выдумал вот такой вот код:
def backward_string_by_word(text: str) -> str: import re workarray=re.findall('[a-zA-Z]+',text) for i in workarray: text2=text.replace(i,''.join(reversed(i))) return text2, workarray[0] in text print(backward_string_by_word('abc def ghi'))
('abc def ihg', True)
Отредактировано Alexey_mne31 (Авг. 31, 2021 09:46:44)
Офлайн
Все, сам понял.
Каждый раз беру изначальный текст.
Вот так все работает:
def backward_string_by_word(text: str) -> str: import re workarray=re.findall('[a-zA-Z]+',text) for i in workarray: text=text.replace(i,''.join(reversed(i))) return text print(backward_string_by_word('abc def ghi jkl'))
Отредактировано Alexey_mne31 (Авг. 31, 2021 09:57:15)
Офлайн
>>> import re >>> >>> text = 'abc def ghi' >>> >>> out = re.sub(r'\b\S+\b', lambda mo: mo.group()[::-1], text) >>> out 'cba fed ihg' >>>
Офлайн