检查列表中的n个成员是否在python中的另一个列表中

时间:2014-05-28 09:47:11

标签: python list indexing

想象一下,在python中,我们有一个列表,如下所示:

[100,111,223,456,789,880]

另一个列表,如下:

[100,789,223,556,998,332,989,987]

假设任何一个列表的成员都没有重复,那么考虑第一个列表中的2个(或n个)成员驻留在python的第二个列表中的最快方法是什么?

2 个答案:

答案 0 :(得分:3)

a=[100,111,223,456,789,880]
b=[100,789,223,556,998,332,989,987]

print list(set(a) & set(b))

#output [100, 789, 223]

答案 1 :(得分:3)

您可以尝试使用set及其intersection()方法:

L1 = [100, 111, 223, 456, 789, 880]
L2 = [100, 789, 223, 556, 998, 332, 989, 987]    

n = ...
print len(set(L2).intersection(L1)) > n
# True or False

如果你想获得部分元素,你可以打印intersection()的结果:

print set(L2).intersection(L1)
# set([100, 789, 223])  # list(...) to convert to list