1

我有一组非常大的文件,我正在迭代以计算所有单词。我计算的单词中可以有标点符号,例如“hyper-speed”或“12:30”,但如果标点符号位于单词的末尾,则应该修剪。示例(“吓人!”=>“吓人”,“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”或“organiz”),我想知道这是因为在如此大的数据集中存在一些拼写错误还是我的算法有缺陷?

4

1 回答 1

9
>>> from string import punctuation
>>> word = "-scary!"
>>> word.strip(punctuation)
'scary'

正如@hughdbrown 所指出的,还有仅分别从左侧和右侧剥离的lstriprstrip替代方案。

于 2013-03-24T02:09:33.937 回答