如果我有两个清单:
a = [1,2,1,2,4] and b = [1,2,4]
我如何获得
a - b = [1,2,4]
这样b中的一个元素只从a中删除一个元素。如果该元素存在于。
中答案 0 :(得分:1)
您可以使用itertools.zip_longest压缩不同长度的列表,然后使用列表理解:
>>> from itertools import zip_longest
>>> [i for i,j in izip_longest(a,b) if i!=j]
[1, 2, 4]
演示:
>>> list(izip_longest(a,b))
[(1, 1), (2, 2), (1, 4), (2, None), (4, None)]
答案 1 :(得分:0)
a = [1,2,1,2,4]
b = [1,2,4]
c= set(a) & set(b)
d=list(c)
答案只是对这个主题的一点修改答案: Find non-common elements in lists
因为你不能迭代一个set对象: https://www.daniweb.com/software-development/python/threads/462906/typeerror-set-object-does-not-support-indexing