我想在 python 中删除字符串中的字符:
string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...
但是我有很多字符必须删除。我想了一个清单
list = [',', '!', '.', ';'...]
但是如何使用 list
替换 string
中的字符?
原文由 Laura 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 str.translate()
:
s.translate(None, ",!.;")
例子:
>>> s = "asjo,fdjk;djaso,oio!kod.kjods;dkps"
>>> s.translate(None, ",!.;")
'asjofdjkdjasooiokodkjodsdkps'
原文由 Sven Marnach 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
4 回答936 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
如果您使用的是 python2 并且您的输入是字符串(不是 unicode),那么绝对最好的方法是
str.translate
:否则,可以考虑以下选项:
A.逐个字符迭代主题字符,省略不需要的字符和
join
结果列表:(请注意,生成器版本
''.join(c for c ...)
效率较低)。B. 动态创建正则表达式
re.sub
为空字符串:(
re.escape
确保像^
或]
这样的字符不会破坏正则表达式)。C. 使用
translate
的映射变体:完整的测试代码和时间:
结果:
(作为旁注,
remove_chars_translate_bytes
的数字可能会给我们一个线索,为什么业界这么长时间都不愿意采用 Unicode)。