关于python:我应该在这个代码中更改什么来返回两个列表?

what I should change in this code to return two lists?

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

我写这段代码的目的是返回两个列表,一个是正的,一个是负的,我不能给出两个返回语句,但我需要两个单独的列表。这个程序在"and"语句中显示语法错误,请帮助。


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

1
2
3
4
5
6
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)

这将返回包含两个元素的元组。您可以这样使用它:

1
(positive_tokens, negative_tokens) = ethos(yourfile)


我会做如下的事情:

1
2
3
4
5
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

您可以这样使用:

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

看看如何在python中返回多个值?有关从函数返回多个值的更高级讨论