找到两个大型列表之间的重叠

时间:2016-11-13 23:47:41

标签: python list

我有两个非常大的列表P和Q,并希望在P中找到也在Q中的项目。我读了其他建议使用集合的线程,但我不确定是否有必要。我认为以下几行满足了需求:

overlap = [l for l in P if l in Q]

但是,我想知道这是否是找到重叠的合理且最快的方法,或者您建议使用集合?

感谢。

1 个答案:

答案 0 :(得分:0)

正如@AChampion所建议的,为此目的更有效。以下是感兴趣的人的代码。您只需将较大的列表(例如Q)转换为列表,然后

 larger_list_set = set(Q)
 overlap = [l for l in P if l in larger_list_set]

效率更高。