请注意,您的呼叫的结构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'