在我的文本中,我想用一个空格替换以下特殊字符:
symbols = ["`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "-", "+", "=", "{", "[", "]", "}", "|", "\\", ":", ";", "\"", "<", ",", ">", ".", "?", "/"]
执行此操作的最有效方法(就代码执行时间而言)是什么?
例如,我想要这个:
(Hello World)] *!
成为这个:
Hello World
候选方法似乎如下:
>列表理解
> .replace()
> .translate()
>正则表达式
解决方法:
为了获得有效的解决方案,您可以使用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,python-3-x,string 来源: https://codeday.me/bug/20191002/1841180.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。