有没有一种方法可以在Python中获得元组或列表的差异和交集?

有没有一种方法可以在Python中获得元组或列表的差异和交集?,python,list,tuples,intersection,difference,Python,List,Tuples,Intersection,Difference,如果我有名单: a = [1, 2, 3, 4, 5] b = [4, 5, 6, 7, 8] c = a * b 你应该给我: c = [4, 5] c = [1, 2, 3] 及 你应该给我: c = [4, 5] c = [1, 2, 3] 这是否适用于Python,还是我必须自己编写 对元组也一样吗?我可能会在添加列表时使用列表,但只是想知道。如果顺序不重要,您可以使用它。它实现了交叉和差异 >>> a = set([1, 2, 3, 4, 5]) >

如果我有名单:

a = [1, 2, 3, 4, 5]
b = [4, 5, 6, 7, 8]

c = a * b
你应该给我:

c = [4, 5]
c = [1, 2, 3]

你应该给我:

c = [4, 5]
c = [1, 2, 3]
这是否适用于Python,还是我必须自己编写


对元组也一样吗?我可能会在添加列表时使用列表,但只是想知道。

如果顺序不重要,您可以使用它。它实现了交叉和差异

>>> a = set([1, 2, 3, 4, 5])
>>> b = set([4, 5, 6, 7, 8])
>>> a.intersection(b)
set([4, 5])
>>> a.difference(b)
set([1, 2, 3])
以下是这些操作的时间复杂性信息:。请注意,减数的顺序会改变操作的复杂性

如果元素可以出现多次(正式称为),则可以使用:


你关心多重性和/或顺序吗?如果没有,您可以简单地使用set。Python的
set
类内置了差分和交集方法。唯一需要注意的是,如果这很重要的话,会丢失副本。@squiguy:在这种情况下,
计数器将保持计数。不,我没有。我只需要列表/集合,然后查询组中是否有某个整数。