我需要在Python中比较两个列表,我知道可以使用set
命令来查找相似项,但是是否有另一种命令可以自动比较它们,而不必编写代码?
我想找到在每个列表中不存在的项目。假设列表一如下:
[1, 2, 3, 4, 5, 6]
另外一个列表是:
[1, 2, 3, 4, 6]
我希望能够找到列表中缺失的5
,最好通过一个命令来实现,但是我不知道如何循环比较。
我需要在Python中比较两个列表,我知道可以使用set
命令来查找相似项,但是是否有另一种命令可以自动比较它们,而不必编写代码?
我想找到在每个列表中不存在的项目。假设列表一如下:
[1, 2, 3, 4, 5, 6]
另外一个列表是:
[1, 2, 3, 4, 6]
我希望能够找到列表中缺失的5
,最好通过一个命令来实现,但是我不知道如何循环比较。
文档是一个很好的起点。下面是一些例子,可以帮助您确定如何比较您的集合。
要查找交集(即同时存在于两个集合中的项):
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a & b
set([4, 5, 6])
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a - b
set([1, 2, 3])
>>> b - a
set([7, 8, 9])
要查找对称差异(即在一个集合中或另一个集合中但不在两个集合中都有的项目):
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a ^ b
set([1, 2, 3, 7, 8, 9])
看起来你需要对称差:
a = [1,2,3]
b = [3,4,5]
print(set(a)^set(b))
>>> [1,2,4,5]
一个简单的列表推导式
In [1]: a=[1, 2, 3, 4, 5, 6]
In [2]: b=[1, 2, 3, 4, 6]
In [3]: [i for i in a if i not in b]
Out[3]: [5]