尝试这个:
array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
array2 = [1, 2, 2, 2, 5, 6, 6, 6, 9]
set(array1).difference(array2)
=> set([3, 4, 7, 8])
上面利用了不同之处() http://docs.python.org/2/library/stdtypes.html#set.difference集合的方法,它返回一个新集合,其中的元素不在作为参数接收的可迭代对象中。请注意,无需转换array2
到一个集合来使其工作。
另请注意,通过使用集合,所有重复元素都将被删除,并且不一定会保留可迭代对象的原始顺序。如果这是一个问题,请尝试以下替代解决方案:
[x for x in array1 if x not in array2]
=> [3, 4, 7, 8]