比较python中两个列表中的元素

时间:2018-05-05 06:19:12

标签: python list set set-union

我有两个列表如下:

a = ['abc','def', 'ghi'], b=['ZYX','WVU']

并想确认两个列表的union是否等于超集

c = ['ZYX', 'def', 'WVU', 'ghi', 'abc'] 

我试过以下:

>>> print (c == list(set(b).union(c)))
>>> False

有人可以展示我在这里缺少的东西吗?

1 个答案:

答案 0 :(得分:2)

只需使用set方法,因为列表中的商品订单不同,这就是您收到False作为结果的原因。

print (set(c) == set(list(set(b).union(c))))

另一种解决方案是使用Counter类。 Counter方法应该对大型列表更有效,因为它具有线性时间复杂度(即O(n))

from collections import Counter
Counter(c) == Counter(list(set(b).union(c))))