我正在用Python编写一个程序,其中我有两个区间作为输入,然后它必须返回三个操作:-并集(A | B) -交集(A & B) -差
我试着为区间A和B设置集合,然后用set方法(A-B)减去它们,但它没有任何意义,因为它必须返回一个区间,而不是一个集合,我还区分了open / closed / open_closed等区间。
输入: 3,10) (5,16
输出:差A\B: 3,5差B\A: 10,16
发布于 2019-06-19 08:36:50
您是否尝试过填充间隔的集合表示法,然后应用集合运算?例如:
间隔[3,10] -> set(3,4,5,6,7,8,9)
间隔(5,16] -> set(6,7,8,9,10,11,12,13,14,15,16)
也许range
在填补空缺的部分会有所帮助。
发布于 2019-06-19 08:58:57
我没有完全理解你的问题。但是试试这个,希望这就是你想要的:
A = set(range(3,10)) # {3, 4, 5, 6, 7, 8, 9}
B = set(range(6,17)) # {6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
u = A.union(B) # {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
v = A.intersection(B) # {6, 7, 8, 9}
x = A.difference(B) # {3, 4, 5}
y = B.difference(A) # {10, 11, 12, 13, 14, 15, 16}
https://stackoverflow.com/questions/56658557
复制相似问题