Top.Mail.Ru
Ответы

Вопрос по 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.

Аватар пользователя
Просветленный
12
 import re
print(re.sub('[A-Za-z]+', lambda x: ''.join(sorted(x[0])), line))