如何删除python中的标点符号?

新手上路,请多包涵

我有一个问题:

Ex 我有一句话

s = "AAA? BBB. CCC!"

所以,我这样做:

 import string
table = str.maketrans('', '', string.punctuation)
s = [w.translate(table) for w in s]

没关系。我的新句子将是:

 s = "AAA BBB CCC"

但是,如果我输入如下句子:

 s = "AAA? BBB. CCC! DDD.EEE"

删除标点符号后,我将使用与下面相同的方法

s = "AAA BBB CCC DDDEEE"

但需要:

 s = "AAA BBB CCC DDD EEE"

有什么想法/方法可以解决这个问题吗?

原文由 ctrlaltdel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 608
1 个回答

string.punctuation 包含以下字符:

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

您可以使用 translate 和 maketrans 函数将标点符号映射到空值(替换)

 import string

'AAA? BBB. CCC! DDD.EEE'.translate(str.maketrans('', '', string.punctuation))

输出:

 'AAA BBB CCC DDDEEE'

原文由 Vlad Bezden 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题