提问人:SuperChincillaToTheMax 提问时间:8/22/2023 最后编辑:SuperChincillaToTheMax 更新时间:8/22/2023 访问量:49
Python maketrans() 和 translate() 不起作用
Python maketrans() and translate() not working
问:
尝试利用 Python 字符串 translate() 和 maketrans() 方法来替换字符串。是的,两个字符串的长度相同。当我用“Serena”替换“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,但仍然不起作用。
答:
2赞
wim
8/22/2023
#1
“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
如果你真的想替换整个单词而不是单个字符,也许你只想简单地使用 str.replace
来代替:
>>> "Hello Serena".replace("Serena", "Tuxedo")
'Hello Tuxedo'
评论
0赞
SuperChincillaToTheMax
8/24/2023
谢谢!我想我误解了方法。
评论
maketrans()