gpt4 book ai didi

python - Python 3 中 str.translate 的自定义表

转载 作者:行者123 更新时间:2023-12-04 01:26:47 25 4
gpt4 key购买 nike

如果我运行此代码:

s.translate(str.maketrans({'as': 'dfg', '1234': 'qw'}))

我会得到:
ValueError: string keys in translate table must be of length 1

有没有办法使用 str.translate 一次替换多个字符?文档说我可以使用 codecs 来实现灵活的方法,但我不知道如何使用。

如果不是,那么可以做些什么呢?

最佳答案

没有 str.translate 可以单独使用 来替换单个字符。
替换字符串可以是任意长度,但键必须是单个字符。

当他们的文档提到 codecs 时,他们说您可以实现自定义编码,注册它,然后使用它打开文件......这不是调用 codecs.maketrans 之类的东西,这是相当多的工作。我个人将 re.sub 与函数替换一起使用:

replacements = {'as': 'dfg', '1234': 'qw'}
re.sub('({})'.format('|'.join(map(re.escape, replacements.keys()))), lambda m: replacements[m.group()], text)

这似乎做你想做的事:
>>> re.sub('({})'.format('|'.join(map(re.escape, replacements.keys()))), lambda m: replacements[m.group()], "test as other test1234")
'test dfg other testqw'

关于python - Python 3 中 str.translate 的自定义表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52420009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com