array filter in python? array filter in python? python python

array filter in python?


If the order is not important, you should use set.difference. However, if you want to retain order, a simple list comprehension is all it takes.

result = [a for a in A if a not in subset_of_A]

EDIT: As delnan says, performance will be substantially improved if subset_of_A is an actual set, since checking for membership in a set is O(1) as compared to O(n) for a list.

A = [6, 7, 8, 9, 10, 11, 12]subset_of_A = set([6, 9, 12]) # the subset of Aresult = [a for a in A if a not in subset_of_A]


Yes, the filter function:

filter(lambda x: x not in subset_of_A, A)


set(A)-set(subset_of_A) gives your the intended result set, but it won't retain the original order. The following is order preserving:

[a for a in A if not a in subset_of_A]