我有两个非常大的列表P和Q,并希望在P中找到也在Q中的项目。我读了其他建议使用集合的线程,但我不确定是否有必要。我认为以下几行满足了需求:
overlap = [l for l in P if l in Q]
但是,我想知道这是否是找到重叠的合理且最快的方法,或者您建议使用集合?
感谢。
答案 0 :(得分:0)
正如@AChampion所建议的,为此目的更有效。以下是感兴趣的人的代码。您只需将较大的列表(例如Q)转换为列表,然后
larger_list_set = set(Q)
overlap = [l for l in P if l in larger_list_set]
效率更高。