I know how to get an intersection of two flat lists:
b1 = [1,2,3,4,5,9,11,15]
b2 = [4,5,6,7,8]
b3 = [val for val in b1 if val in b2]
or
<
For people just looking to find the intersection of two lists, the Asker provided two methods:
b1 = [1,2,3,4,5,9,11,15] b2 = [4,5,6,7,8] b3 = [val for val in b1 if val in b2]
and
def intersect(a, b): return list(set(a) & set(b)) print intersect(b1, b2)
But there is a hybrid method that is more efficient, because you only have to do one conversion between list/set, as opposed to three:
b1 = [1,2,3,4,5]
b2 = [3,4,5,6]
s2 = set(b2)
b3 = [val for val in b1 if val in s2]
This will run in O(n), whereas his original method involving list comprehension will run in O(n^2)