比较两个列表(python)

时间:2016-10-09 17:35:21

标签: python list

我需要比较一个程序中的两个列表,看看是否有匹配的字符串。其中一个是我已导入的txt文档。多数民众赞成在做什么

    def compareLists(self, listA, listB):
    sameWords = list()

    for a in xrange(0,len(listA)):
        for b in xrange(0,len(listB)):
            if listA[a] == listB[b]:
                sameWords.append(listA[a])
                pass
            pass
        pass
    return sameWords

但是,如果我运行该程序,它不显示任何匹配,虽然我知道必须有一个。我认为它位于if块内。

1 个答案:

答案 0 :(得分:1)

我假设你的代码中的缩进是正确的。继续您的策略,此代码应该有效。

def compareLists(self, listA, listB):
    sameWords = list()

    for a in xrange(0,len(listA)):
        for b in xrange(0,len(listB)):
            if listA[a] == listB[b]:
                sameWords.append(listA[a])
    return sameWords

或者,正如@Efferalgan建议的那样,只需设置交集。

def compareLists(self, listA, listB):
    return list(set(listA) & set(listB))

注意:设置的交集将从结果中删除重复的匹配单词。

正如你所说,你正在阅读文本文件中的行,看起来新行仍在那里。

my_text_list = [s for s in open("my_text.txt").read().rsplit()]