我有一个非常大的文件集,我正在迭代以计算所有单词。我正在计算的单词可以在其中加上标点符号,例如“超高速”或“12:30”,但如果标点符号位于单词的末尾,则应对其进行修剪。示例(“scary!”=>“scary”,“rip-”=>“rip”)。这是我的算法。传递给此函数的所有内容都是小写的。
def cleanWord(word):
if len(word) <= 2:
return word
if word[0] in string.punctuation:
return cleanWord(word[1:])
if word[-1] in string.punctuation:
return cleanWord(word[:-2])
return word
有时在我的计数中会以笨拙的方式(例如“philidelphi”或“组织”)修剪单词,我想知道这是因为在这么大的数据集中有一些错误的拼写或者我的算法是否有缺陷?< / p>
答案 0 :(得分:9)
>>> from string import punctuation
>>> word = "-scary!"
>>> word.strip(punctuation)
'scary'
正如@hughdbrown所指出的,还有lstrip
和rstrip
替代品,它们只分别从左边和右边剥离。