如果顺序不重要,则应使用set.difference
。但是,如果要保留顺序,只需要简单的列表理解即可。
result = [a for a in A if a not in subset_of_A]
正如delnan所说,如果subset_of_A
是实际值,性能将得到显着提高set
,因为检查a中的成员资格set
与列表的O(n)相比是O(1)。
A = [6, 7, 8, 9, 10, 11, 12]
subset_of_A = set([6, 9, 12]) # the subset of A
result = [a for a in A if a not in subset_of_A]