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中返回多个值?有关从函数返回多个值的更高级讨论