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

Python 如何调用函数来删除后缀?,python,methods,Python,Methods,我希望将结果中的每个单词传递给stem方法以删除后缀。然而,在打印我的“最终”列表时,我发现这个方法对单词不起作用。我调用函数时是否出错 results=[] with open('/Users/mnk/Documents/Stemtry.txt') as filer: for line in filer: results.append(line.strip().spli

我希望将结果中的每个单词传递给stem方法以删除后缀。然而,在打印我的“最终”列表时,我发现这个方法对单词不起作用。我调用函数时是否出错

             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)
将第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

词干(n)
的主体为空。缩进是。缩进是Python语法的一部分。请确保您的代码是正确的,并且代码片段具有与本地代码相同的缩进。请将
print(n)
放入
stem
以检查它得到的单词。你确定你在检查单词而不是字母吗?@furas在stemm中插入print语句时,我没有收到任何输出。但当我插入内联打印(r)时,它会打印出单词。所以它被确认是在检查单词而不是字母。但是,该函数不起作用。您的
stem
函数在for循环中有一个return语句。