我将多个列表作为函数的输出。我想组合所有列表,只形成一个列表。请帮忙
def words(*args):
word =[args]
tokens = nltk.wordpunct_tokenize(''.join(word))
for word in tokens:
final = wn.synsets(word)
synonyms = set()
for synset in final:
for synwords in synset.lemma_names:
synonyms.add(synwords)
final = list(synonyms)
dic = dict(zip(word,final))
dic[word] = final
return final
答案 0 :(得分:0)
在使用单词功能的任何地方使用此功能(根据您的问题列出一个列表):
wordlist = [word for sublist in words(args) for word in sublist]
答案 1 :(得分:0)
一旦你的代码得到纠正,我发现函数words()
返回平面列表以外的任何内容都没有问题。如果有一些输入可以重现问题,请用它更新您的问题。
更正是将args
直接传递给join()
,而不是将其包装在列表中。
def words(*args):
tokens = nltk.wordpunct_tokenize(''.join(args))
for word in tokens:
final = wn.synsets(word)
synonyms = set()
for synset in final:
for synwords in synset.lemma_names:
synonyms.add(synwords)
final = list(synonyms)
dic = dict(zip(word,final))
dic[word] = final
return final
>>> words('good day', ', this is a', ' test!', 'the end.')
['beneficial', 'right', 'secure', 'just', 'unspoilt', 'respectable', 'good', 'goodness', 'dear', 'salutary', 'ripe', 'expert', 'skillful', 'in_force', 'proficient', 'unspoiled', 'dependable', 'soundly', 'honorable', 'full', 'undecomposed', 'safe', 'adept', 'upright', 'trade_good', 'sound', 'in_effect', 'practiced', 'effective', 'commodity', 'estimable', 'well', 'honest', 'near', 'skilful', 'thoroughly', 'serious']