![](/img/trans.png)
[英]How can I replace characters in a string in Python, but not using string methods?
[英]How can I replace multiple characters in a string using python?
我在弄清楚如何替换字符串中的多个字符时遇到了一些麻烦。我正在尝试编写一个名为replace(string)的函数,该函数接受输入并将输入中的某些字母替换为另一个字母。
可以说我有字符串“ WXYZ”,我想用Y替换所有W,用Z替换X,用W替换Y,用X替换Z。无论输入是什么,我都希望它进行替换。 因此,如果我也进行了replace(“ WWZXWWXYYZWYYY”)之类的操作,则应该替换我上面所说的字母。
到目前为止,这是我所做的:
def replace(string):
for letters in string:
string = string.replace("W","Y").replace("X","Z").replace("Y","W").replace("Z","X")
print(string)
但是当我用replace(“ WXYZ”)运行它时
我得到的代码输出为:WXWX
而不是将YZWX作为输出。 我也想使用python的内置函数。 有人可以帮我解决这个问题,谢谢!
请注意,您的呼叫以这样的方式构造:第一个呼叫中的W
用Y
替换,然后在第三个呼叫中Y
再次用W
替换Y
,撤消第一个呼叫的输出。
您应该使用str.translate
,它比一连串的replace
调用更加有效和健壮:
_tab = str.maketrans(dict(zip('WXYZ', 'YZWX')))
def replace(string):
return string.translate(_tab)
>>> replace('WXYZ')
'YZWX'
>>> replace("WWZYWXXWYYZW")
'YYXWYZZYWWXY'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.