【发布时间】:2013-10-25 17:18:03
【问题描述】:
我的任务的目的是在标点符号前后添加空格。目前我一直在使用迭代str.replace() 将每个标点符号p 替换为" "+p+" "。 如何使用str.translate() 实现相同的输出,我可以传入两个列表或字典:
inlist = string.punctuation
outlist = [" "+p+" " for p in string.punctuation]
inoutdict = {p:" "+p+" " for p in string.punctuation}
假设我所有的标点符号都在string.punctuation 中。目前,我正在这样做:
from string import punctuation as punct
def punct_tokenize(text):
for ch in text:
if ch in deupunct:
text = text.replace(ch, " "+ch+" ")
return " ".join(text.split())
sent = "This's a foo-bar sentences with many, many punctuation."
print punct_tokenize(sent)
而且这个迭代 str.replace() 耗时太长,str.translate() 会更快吗?
【问题讨论】:
标签: python string replace translate punctuation