Как использовать нарезку / обозначение среза в Python - PullRequest
0 голосов
/ 07 февраля 2020

Итак, я сделал переводчик, который берет предложение на английском языке sh, перемещает последнюю букву вперед, добавляет mu после каждого слова и затем добавляет emu после каждых трех слов. Теперь я хотел бы сделать наоборот. Кажется, я не могу пройти часть того, что сейчас переместил первую букву слова в конец слова. У меня сложилось впечатление из этой статьи о переполнении стека Как переместить первую букву слова в конец , что с помощью слова [1:] + слово [0] я мог бы выполнить sh это, но Я пытался реализовать это, и он, похоже, ничего не делал.

Вот мой текущий код:

sentence = 'imu odmu tnomu emu wknomu whomu otmu emu odmu sthimu'
#This is the result of the english translated sentence

#Get rid of mu and emu 
sentence = sentence.replace('mu', '')
sentence = sentence.replace('e ', '')

#I would like this to move the first letter of each word to the end
print("".join([words[1:] + words[0] for words in sentence]))

#Current output i od tno wkno who ot od sthi
#Expected Output i do not know how to do this

Просто любопытно, если кто-то может помочь мне объяснить, что я скучаю здесь

1 Ответ

2 голосов
/ 07 февраля 2020

split() возьмет любую строку и разделит ее на list на любой символ, который вы используете в вызове. По умолчанию используется пробел, поэтому все, что вам нужно сделать, это разбить предложение на слова, а не работать с символами.

sentence = 'imu odmu tnomu emu wknomu whomu otmu emu odmu sthimu'
#This is the result of the english translated sentence

#Get rid of mu and emu 
sentence = sentence.replace('mu', '')
sentence = sentence.replace('e ', '')

#I would like this to move the first letter of each word to the end
print(" ".join([words[1:] + words[0] for words in sentence.split()]))
>>> i do not know how to do this
...