尝试利用Python字符串translate()和maketrans()方法来替换字符串。是的,两个字符串的长度相同。当我用“Serena”替换“Tuxedo”时 - 它起作用了。当我用“Tuxedo”替换“Serena”时,我得到“Texedo”。
sailorsquad = str.maketrans("Serena","Tuxedo")
txt = "Serena"
txt.translate(sailorsquad)
'Texedo'
sailorsquad = str.maketrans("Tuxedo","Serena")
txt = "Tuxedo"
txt.translate(sailorsquad)
'Serena'
也尝试只做 txt.translate 但它仍然不起作用。
“Serena”有两个 e,因此当您使用
e -> u
和 e -> e
从中创建翻译表时,最后一个获胜:
>>> str.maketrans("Serena","Tuxedo") == str.maketrans("Srena", "Txedo")
True
换句话说,“e”仍然映射到该转换表中的“e”:
>>> chr(str.maketrans("Serena","Tuxedo")[ord('e')])
'e'
相反,
Tuxedo -> Serena
效果很好,因为“Tuxedo”的字母都是唯一的。
如果您实际上想替换整个单词而不是单个字符,也许您只想简单地使用
str.replace
来代替:
>>> "Hello Serena".replace("Serena", "Tuxedo")
'Hello Tuxedo'