Обратите внимание, что вам нужно знать предыдущий символ, чтобы выполнить эту задачу - zip
будет полезно:
txt = "The boy went to the school, then ate his breakfast! Wow, that’s not a nice story!?"
new_txt = txt[0] + ''.join('-' if curr.isalpha() and prev.isalpha() else curr for prev, curr in zip(txt,txt[1:]))
print(new_txt)
Вывод:
T-- b-- w--- t- t-- s-----, t--- a-- h-- b--------! W--, t---- n-- a n--- s----!?
Объяснение: Я беру txt
и txt[1:]
, то есть txt, начинающийся со 2-го символа, затем используйте zip
, чтобы создать одну итерацию с каждым элементом, состоящим из двух символов: prev
т.е. предыдущий и curr
то есть текущий, если оба являются буквами, которые я делаю -
в противном случае текущий символ, затем я присоединяю все созданные мной символы и добавляю первый символ (txt[0]
) при запуске, как это считалось ранее, потому что у него нет предыдущего.
Я думаю, что регулярные выражения лучше подходят дляВ этой задаче, однако, используя приведенный выше пример, я хочу показать, что, используя язык python
, вы можете написать краткий код, делая это без использования регулярных выражений.