Вопрос по Python
Задача отсортировать все буквы по алфавиту в каждом слове. Но любые символы - не буквы(точки, запятые, апострофы) оставить на месте. Различные решения я уже видел, но они либо сложны(ещё не проходили), либо частично удовлетворяют условию задания.
Вот что написано мною:
line =" Good's to walk around the city!"
line = line.split()
result = ""
for i in range(len(line)):
line[i] = sorted(line[i])
result += ''.join(line[i]) + " "
print(result)
Результат: 'Gdoos ot aklw adnoru eht !city
А нужно: Gdoo's ot aklw adnoru eht city!
Приходит такая мысль:
• взять слово
• достать из него все буквы и положить в список
• отсортировать эти буквы
• в самом слове искать буквы регулярным выражением и заменять по одной на буквы из отсортированного списка. Для этого сгодится функция re.sub.
import re
print(re.sub('[A-Za-z]+', lambda x: ''.join(sorted(x[0])), line))