Pythonic方法查找未包含在另一个python列表中的python列表的elementa

hea*_*ive 1 python

我正试图找到一个更快的解决方案,我现在拥有.我的问题包括创建一个从其他2个列表派生的python列表.List_a有很多元素,list_b有更多的元素,有些与list_a有共同之处.

这就是我所拥有的:

list_a = [a huge python list with over 100,000 elements ]
list_b = [a huge python list with over 1,000,00 elements]
Run Code Online (Sandbox Code Playgroud)

我的解决方案

list_c = []
for item in list_a:
    if item not in list_b:
        list_c.append(item)
Run Code Online (Sandbox Code Playgroud)

它有效,但它非常非常慢.有没有办法更快地解决这个问题?

Cor*_*mer 5

您可以使用列表理解

list_c = [item for item in list_a if item not in list_b]
Run Code Online (Sandbox Code Playgroud)

但对于性能,请注意in操作更快的setlist,所以您可能需要先添加一个步骤

set_b = set(list_b)
list_c = [item for item in list_a if item not in set_b]
Run Code Online (Sandbox Code Playgroud)