繁体   English   中英

如何使用python替换字符串中的多个字符?

[英]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的内置函数。 有人可以帮我解决这个问题,谢谢!

请注意,您的呼叫以这样的方式构造:第一个呼叫中的WY替换,然后在第三个呼叫中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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM