如何调用该函数来删除后缀?

时间:2016-01-10 17:36:56

标签: python methods

我想将结果中的每个单词传递给stemm方法以删除后缀。但是,在打印我的“最终”列表时,我发现该方法不适用于单词。我错误地调用了这个函数吗?

             results=[]
             with open('/Users/mnk/Documents/Stemtry.txt') as filer:
                 for line in filer:
                    results.append(line.strip().split())
             result=[]
             final=[]

             def stemm(n):
                 for suffix in ['ing', 'ly', 'ed', 'ious', 'ies', 'ive', 'es', 's', 'ment']:
                    if n.endswith(suffix):
                        return n[:-len(suffix)]
                    return n

             for eachitem in results[:10]:
                 for n in eachitem:
                     r=stemm(n)
                     final.append(r)
             print(final)               
             result.append(final)

1 个答案:

答案 0 :(得分:2)

去缩进第12行("返回n")一次。然后等到所有后缀都被检查后再返回结果。您还可以使用else子句。

def stemm(n):
    for suffix in ['ing', 'ly', 'ed', 'ious', 'ies', 'ive', 'es', 's', 'ment']:
        if n.endswith(suffix):
            return n[:-len(suffix)]
    else:
        return n