似乎应该有比以下更简单的方法:
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
在那儿?
原文由 Redwood 发布,翻译遵循 CC BY-SA 4.0 许可协议
似乎应该有比以下更简单的方法:
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
在那儿?
原文由 Redwood 发布,翻译遵循 CC BY-SA 4.0 许可协议
正则表达式很简单,如果您知道的话。
import re
s = "string. With. Punctuation?"
s = re.sub(r'[^\w\s]','',s)
原文由 Eratosthenes 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答893 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
从效率的角度来看,你不会打败
对于更高版本的 Python,请使用以下代码:
它使用查找表在 C 中执行原始字符串操作 - 没有什么比这更好的了,但是编写您自己的 C 代码。
如果速度不是问题,另一种选择是:
这比使用每个字符的 s.replace 更快,但性能不如正则表达式或 string.translate 等非纯 python 方法,从下面的时间可以看出。对于这种类型的问题,在尽可能低的水平上做是有回报的。
计时码:
这给出了以下结果: