使用循环从列表中查找所有唯一单词

imp*_*blu 1 python iterator loops list python-2.7

我正在尝试基于从文本文件中获取的所有单词列表来列出唯一单词.我唯一的问题是用于迭代两个列表的算法.

def getUniqueWords(allWords):
    uniqueWords = []
    uniqueWords.append(allWords[0])
    for i in range(len(allWords)):
        for j in range(len(uniqueWords)):
            if allWords[i] == uniqueWords[j]:
                pass
            else:
                uniqueWords.append(allWords[i])
                print uniqueWords[j]
    print uniqueWords
    return uniqueWords
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我创建了一个空列表并开始迭代这两个列表.此外,我附加了列表中的第一项,因为由于某种原因,它不会尝试匹配我假设的单词,因为在空列表中,list [0]不存在.如果有人可以帮我弄清楚如何正确地迭代这个,这样我就能生成一个很棒的单词列表.

print uniqueWords [j]只是为了调试,所以我可以看到在处理列表时会发生什么

fab*_*bio 11

我不是python专家,但认为这应该工作:

uniqueWords = [] 
for i in allWords:
      if not i in uniqueWords:
          uniqueWords.append(i);

return uniqueWords
Run Code Online (Sandbox Code Playgroud)

编辑:

我测试了它的工作原理,它只返回列表中的唯一单词:

def getUniqueWords(allWords) :
    uniqueWords = [] 
    for i in allWords:
        if not i in uniqueWords:
            uniqueWords.append(i)
    return uniqueWords

print getUniqueWords(['a','b','c','a','b']);
Run Code Online (Sandbox Code Playgroud)

['a','b','c']