Reverse-замена первой буквы каждого слова буквой предыдущего слова

#python #for-loop #if-statement #reverse

#python #for-цикл #if-оператор #обратный

Вопрос:

Я написал функцию, которая принимает сообщение (строку) в качестве входных данных и заменяет первую букву каждого слова первой буквой предыдущего слова (для самого первого слова я беру первую букву последнего слова):

 def changeFirst(message):
    msg_list=list(message)
    j=0
    pre=msg_list[j]
    for i in range(len(msg_list)):
        if msg_list[i]==' ':
            nextpre=msg_list[i 1]
            msg_list[i 1]=pre
            pre=nextpre
    msg_list[0]=pre
    msg_list=''.join(msg_list)
    return msg_list

changeFirst("now you are in love with me")
mow nou yre an iove lith we
  

Я хочу написать функцию UnchangeFirst() , которая отменяет эту функцию, например, она должна работать так:

 UnchangeFirst("mow nou yre an iove lith we")
now you are in love with me
  

Как я могу отменить эту функцию?

Комментарии:

1. Ну, вы пытались написать код для этого? С какой конкретной трудностью вы столкнулись? Можете ли вы объяснить, как бы вы решили проблему вручную? Какую часть этого процесса вы не можете перевести в код?

Ответ №1:

Вот оно!

 def changedAgain(message2):
    msg_list = list(message2)
    j = 0
    first=msg_list[0]
    for i in range(len(msg_list)):
        if msg_list[i]==' ':
            msg_list[j]=msg_list[i 1]
            msg_list[i 1]=msg_list[j]
            j=i 1

    msg_list[j]=first
    return(''.join(msg_list))

message2="mow nou yre an iove lith we"

print(changedAgain(message2))
>>> "now you are in love with me"