我需要在Python中比较两个列表,并且我知道使用set命令来查找相似的项,但是是否可以使用另一个命令来自动比较它们,而不必为此编写代码?我想找出不在每个列表中的项目。假设列表1如下:
set
[1, 2, 3, 4, 5, 6]
清单二是:
[1, 2, 3, 4, 6]
我希望发现列表中缺少5,希望是通过命令,但我知道如何循环进行比较。
5
c2e8gylq1#
文档是一个很好的开始。这里有几个例子,可能会帮助你确定你想要如何比较你的集合。要查找交集(两个集合中的项目):
>>> 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])
yfjy0ee72#
看起来需要对称差分:
a = [1,2,3] b = [3,4,5] print(set(a)^set(b)) >>> [1,2,4,5]
h5qlskok3#
一个简单的列表解析
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]
3条答案
按热度按时间c2e8gylq1#
文档是一个很好的开始。这里有几个例子,可能会帮助你确定你想要如何比较你的集合。
要查找交集(两个集合中的项目):
要查找差异(仅在一个集合中的项目):
要查找对称差异(项目位于其中一个或另一个中,但不同时位于两个中):
yfjy0ee72#
看起来需要对称差分:
h5qlskok3#
一个简单的列表解析