请注意,您的呼叫的结构
W是
Y在第一个呼叫中被替换,然后在第三次呼叫中
Y被替换
W,从而撤消了第一个呼叫的输出。
您应该使用
str.translate,它比一连串的
replace调用更为有效和健壮:
_tab = str.maketrans(dict(zip('WXYZ', 'YZWX')))def replace(string): return string.translate(_tab)>>> replace('WXYZ')'YZWX'>>> replace("WWZYWXXWYYZW")'YYXWYZZYWWXY'


