在python中等同两组

时间:2015-02-27 12:00:34

标签: python python-3.x set

假设我有两个列表 a = [2,3,4]b=[2,3,4] 那么为什么

>>> set(a) in set(b)
False

虽然

>>> set(a) == set(b)
True

3 个答案:

答案 0 :(得分:3)

您正在测试set(b)是否包含文字集对象。 set(b)不包含此类对象。

如果您想测试set(a)是否为子集或相等,请使用<=

>>> set(a) <= set(b)
True

或使用set.issubset() method

>>> set(a).issubset(b)
True

对于较小的集合,任一选项也会返回True,其中所有元素也包含在b中:

>>> set([2, 3]) <= set(b)
True
>>> set([2, 3]).issubset(b)
True
>>> set([2, 3, 42]) <= set(b)
False
>>> set([2, 3, 42]).issubset(b)
False

答案 1 :(得分:1)

该集合不包含set(2, 3, 4),它包含整数234

您可以询问单个整数是否在集合中:

>>> 2 in set(b)
True

>>> 3 in set(b)
True

>>> 4 in set(b)
True

documentation for set显示要检查遏制,你可以two ways

>>> set(a) <= set(b)
True

>>> set(a).issubset(set(b))
True

答案 2 :(得分:1)

测试一组是否包含另一组可以使用比较运算符或.issuperset

来完成
>>> set([2, 3, 4]) >= set([2, 3])
True
>>> set([2, 3, 4]).issuperset(set([2, 3]))
True

请参阅8.7. sets — Unordered collections of unique elements