如何检查包含范围的两个集合是否是彼此的子集?
set((2,range(2,3))).issubset(set((1,range(2,100))))
-->[False]
set((range(2,3))).issubset(set((range(2,100))))
-->[False]
但确实如此。
答案 0 :(得分:1)
看看这个集合的样子:
>>> set((2, range(2, 5)))
{range(2, 5), 2}
如您所见,范围对象是集合的实际元素。例如,元素3
不在该集合中,因为它只包含在集合中的范围内。
您要做的是通过迭代范围内的数字,然后添加更多数字来创建范围中的集合:
>>> a = set((2,)).union(set(range(2, 3)))
>>> b = set((1,)).union(set(range(2, 100)))
>>> a.issubset(b)
True
请注意,我将单个数字作为元组传递,而范围作为单个参数传递给set()
。