Как перевернуть строку с помощью .replace () в Python 3? - PullRequest
0 голосов
/ 26 октября 2019

Предполагается, что мой код заменяет каждый символ в str1 на символ в str2, поэтому в конце str1 и str2 имеют одинаковое значение. Может кто-нибудь объяснить, почему это не работает? он работает до тех пор, пока x = 2, а с x = 3 и далее код сходит с ума и просто добавляет глупости.

str1, str2= "Donkey", "Yeknod"

for x in range(len(str1)): 
    str1=str1.replace(str1[x], str2[x])

1 Ответ

1 голос
/ 26 октября 2019

Это ваши первые три замены, которые работают так, как вы хотели:

replace('D', 'Y') --> Yonkey
replace('o', 'e') --> Yenkey
replace('n', 'k') --> Yekkey

После этого вы начинаете заменять символы, которые встречаются несколько раз в str1.

replace('k', 'n') --> Yenney
replace('e', 'o') --> Yonnoy
replace('y', 'd') --> Yonnod

replace - неподходящий метод для обращения строки: он заменяет все совпадающие символы, а не только тот, который вы хотели заменить.

...