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

2024-10-01 22:31:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在弄清楚如何替换一个字符串中的多个字符时遇到了一些困难。我试图编写一个名为replace(string)的函数,它接受一个输入,并用另一个字母替换输入中的某些字母。在

假设我有一个字符串“WXYZ”,我想用Y替换所有的W,用Z替换X,用W替换Y,用X替换Z,不管输入是什么,我都希望它进行替换。所以,如果我也做一些类似replace(“wwzxwxyyzwyyy”)的操作,它应该像我上面说的那样替换字母。在

这是我目前所做的:

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的内置函数。有人能帮我弄明白吗,谢谢!在


Tags: 函数字符串代码inforstringdef字母
1条回答
网友
1楼 · 发布于 2024-10-01 22:31:05

请注意,您的调用的结构是这样的:在第一个调用中,W被替换为Y,然后在第三个调用中将{}替换为{},撤消第一个调用的输出。在

您应该使用str.translate,它比一堆链式replace调用更高效、更健壮:

_tab = str.maketrans(dict(zip('WXYZ', 'YZWX')))
def replace(string):
    return string.translate(_tab)

^{2}$

相关问题 更多 >

    热门问题