Python -使用“set”查找列表中的不同项

w8f9ii69  于 2022-12-25  发布在  Python
关注(0)|答案(3)|浏览(138)

我需要在Python中比较两个列表,并且我知道使用set命令来查找相似的项,但是是否可以使用另一个命令来自动比较它们,而不必为此编写代码?
我想找出不在每个列表中的项目。假设列表1如下:

[1, 2, 3, 4, 5, 6]

清单二是:

[1, 2, 3, 4, 6]

我希望发现列表中缺少5,希望是通过命令,但我知道如何循环进行比较。

c2e8gylq

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])
yfjy0ee7

yfjy0ee72#

看起来需要对称差分:

a = [1,2,3]
b = [3,4,5]

print(set(a)^set(b))

>>> [1,2,4,5]
h5qlskok

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]

相关问题