【发布时间】:2018-12-07 07:05:26
【问题描述】:
我有一个问题:
例如我有一句话
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"
有什么想法/方法可以解决这个问题吗?
【问题讨论】:
-
@9769953 对不起!是我的错!我当然想全部删除! (编辑)
-
为什么不只是 s = [ w if w not in string.punctuation else ' ' for w in s]
-
@Luv 这将导致最后一种情况,如果标点符号立即位于两个单词之间,它将合并单词
-
@casualcoder 否,因为您将标点符号替换为 ' ' 空格
-
@Luv mb,我没有看到
' '中的空格,那么您有时会在单词之间有两个空格
标签: python string punctuation