有效地在两个列表中查找项目

我有一个工作函数,允许我搜索两个列表,看看列表1中的项目是否存在于list2中,如果list1中的项目不存在,那么我希望该输出到另一个列表.然而,这需要AGES运行,我想知道是否有更快的方法来执行此操作.

def compare(list1,list2):
    x=[]
    for i in list1:
        if i not in list2:
            x.append(i)

    return x

最佳答案 你可以使用套装.

例:

>>> list1 = ['a', 'b', 'c']
>>> list2 = ['c', 'd', 'e']
>>> set(list1) - set(list2)
{'b', 'a'}

默认设置不保留顺序.如果订单对您很重要,请检查OrderedSet的配方.

点赞