比较 python 中两个列表中的元素
Compare elements in two lists in python
我有两个列表如下:
a = ['abc','def', 'ghi'], b=['ZYX','WVU']
并想确认两个列表的 union
是否等于超集
c = ['ZYX', 'def', 'WVU', 'ghi', 'abc']
我试过以下方法:
>>> print (c == list(set(b).union(c)))
>>> False
任何人都可以显示我在这里缺少的东西吗?
只需使用 set
方法,因为列表中的项目顺序不同,这就是您收到 False
作为结果的原因。
print (set(c) == set(list(set(b).union(c))))
另一个解决方案是使用Counter
class。 Counter
方法对于大列表应该更有效,因为它具有线性时间复杂度(即 O(n))
from collections import Counter
Counter(c) == Counter(list(set(b).union(c))))
我有两个列表如下:
a = ['abc','def', 'ghi'], b=['ZYX','WVU']
并想确认两个列表的 union
是否等于超集
c = ['ZYX', 'def', 'WVU', 'ghi', 'abc']
我试过以下方法:
>>> print (c == list(set(b).union(c)))
>>> False
任何人都可以显示我在这里缺少的东西吗?
只需使用 set
方法,因为列表中的项目顺序不同,这就是您收到 False
作为结果的原因。
print (set(c) == set(list(set(b).union(c))))
另一个解决方案是使用Counter
class。 Counter
方法对于大列表应该更有效,因为它具有线性时间复杂度(即 O(n))
from collections import Counter
Counter(c) == Counter(list(set(b).union(c))))