在 python 中有更快的方法吗?
[f for f in list_1 if not f in list_2]
list_1 和 list_2 都包含大约 120.000 个字符串。生成新列表大约需要 4 分钟。
请您参考如下方法:
如果将 list_2 放入 set 中,它应该会使包含检查更快:
s = set(list_2)
[f for f in list_1 if not f in s]
这是因为 x in list 是 O(n) 检查,而 x in set 是常数时间。
另一种方法是使用集差:
list(set(list_1).difference(set(list_2)))
但是,这可能不会比第一种方法快 - 而且,它会从 list_1 中删除您可能不想要的重复项。
