我应该在此代码中更改返回两个列表?

时间:2014-05-30 15:02:17

标签: python

def ethos(file):
    f = open(file)
    raw = f.read()
    token = nltk.word_tokenize(raw)
    words_to_match = ['love' , 'good' , 'excellent' , 'perfect' , 'brilliant']
    words_to_match2 = ['bad' , 'primitive' , 'struggle' , 'annoying' , 'problem' , 'time-consuming', 'fiddly']
    positive_tokens = []
    negative_tokens = []
    for tokens in token:
        if tokens in words_to_match:
            positive_tokens.append(tokens)
        and tokens in words_to_match2:
            negative_tokens.append(tokens)
    return negative_tokens

我编写此代码的目的是返回两个列表,一个是正面,一个是负面,我不能给两个返回语句,但我想要两个单独的列表。此程序在'和'语句中显示语法错误,请提供帮助。

2 个答案:

答案 0 :(得分:2)

按以下方式更改程序的最后一部分:

for tokens in token:
    if tokens in words_to_match:
        positive_tokens.append(tokens)
    if tokens in words_to_match2:
        negative_tokens.append(tokens)
return (positive_tokens, negative_tokens)

这将返回一个包含两个元素的元组。你这样使用它:

(positive_tokens, negative_tokens) = ethos(yourfile)

答案 1 :(得分:0)

我会做类似的事情:

def ethos(file):
    ...
    positive_tokens = [t for t in token if t in words_to_match]
    negative_tokens = [t for t in token if t in words_to_match2]
    return positive_tokens, negative_tokens

你可以使用它:

positive, negative = ethos("somefile.txt")

有关从函数中返回多个值的更高级讨论,请参阅How do you return multiple values in Python?