Python集合set类型

152 阅读1分钟

set可以很方便的进行并集、差集、交集、补集等的操作,这是其他容器做不到的。

「交集 &」: x&y,返回一个新的集合,包括同时在集合 x 和y中的共同元素。

「并集 |」 : x|y,返回一个新的集合,包括集合 x 和 y 中所有元素。

「差集 -」 : x-y,返回一个新的集合,包括在集合 x 中但不在集合 y 中的元素。

「补集 ^」 : x^y,返回一个新的集合,包括集合 x 和 y 的非共同元素。

所以总结set的两个重要作用:

「1、消除重复元素」

「2、关系测试(各种集)」

列如:

输入
a = [0,1,2,3,4]
b = [0,2,6]
list(set(a) & set(b))   # 使用  "&"  运算求ab的交集,输出:[0, 2]
list(set(a) | set(b))   # 使用  "|"  运算求ab的并集,输出:[0, 1, 2, 3, 4, 6]
list(set(a) - set(b))   # 使用  "-"  运算求ab的差(补)集: 求a中有而b中没有的元素,输出:[1, 3, 4]
list(set(a) ^ set(b))   # 使用  "^"  运算求ab的对称差集,输出:[1, 3, 4, 6]
输出
求交集:     list(set(a) & set(b))  输出 ->  [0, 2]
求并集:     list(set(a) | set(b))  输出 ->  [0, 1, 2, 3, 4, 6]
求差(补)集: list(set(a) - set(b))  输出 ->  [1, 3, 4]
求对称差集: list(set(a) ^ set(b))  输出 ->  [1, 3, 4, 6]