假设我有两个列表
a = [2,3,4]
和b=[2,3,4]
那么为什么
>>> set(a) in set(b)
False
虽然
>>> set(a) == set(b)
True
答案 0 :(得分:3)
您正在测试set(b)
是否包含文字集对象。 set(b)
不包含此类对象。
如果您想测试set(a)
是否为子集或相等,请使用<=
:
>>> set(a) <= set(b)
True
>>> 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)
,它包含整数2
,3
和4
。
您可以询问单个整数是否在集合中:
>>> 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