gpt4 book ai didi

python - 替换多个(特殊)字符 - 最有效的方法?

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:05 27 4
gpt4 key购买 nike

在我的文本中,我想用一个空格替换以下特殊字符:

symbols = ["`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "-", "+", "=", "{", "[", "]", "}", "|", "\\", ":", ";", "\"", "<", ",", ">", ".", "?", "/"]

执行此操作的最有效方法(就代码执行时间而言)是什么?

例如,我想要这个:

(Hello World)] *!

变成这样:

Hello World

候选方法似乎如下:

  1. 列表理解
  2. .replace()
  3. .translate()
  4. 正则表达式

最佳答案

要获得有效的解决方案,您可以使用 str.maketrans为了这。请注意,一旦定义了转换表,就只需要映射字符串中的字符即可。以下是您可以这样做的方法:

symbols = ["`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "-", "+",
"=", "{", "[", "]", "}", "|", "\\", ":", ";", "\"", "<", ",", ">", ".", "?", "/"]

首先使用 dict.fromkeys 从符号创建字典为每个条目设置一个空格作为值,并从字典创建一个翻译表:

d = dict.fromkeys(''.join(symbols), ' ')
# {'`': ' ', ',': ' ', '~': ' ', '!': ' ', '@': ' '...
t = str.maketrans(d)

然后调用字符串translate方法将上面字典中的字符映射为一个空格:

s = '~this@is!a^test@'
s.translate(t)
# ' this is a test '

关于python - 替换多个(特殊)字符 - 最有效的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56378872/

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