python-set()集合操作(创建、添加、删除、交集、并集、差集、对称差集)

来源:互联网 发布:国家授时中心网络时间 编辑:程序博客网 时间:2024/05/17 02:15

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。set不保证有序。不可以放入可变对象(例如list)作为key,因为可变对象无法判断相等。

创建

要创建一个set,需要提供一个list作为输入集合

>>> s = set([1, 2, 3])>>> s{1, 2, 3}>>> s = set([1, 1, 2, 2, 3, 3])>>> s{1, 2, 3}

或者,直接创建

>>> s = {1, 2, 3}>>> s{1, 2, 3}>>> s = {1, 1, 2, 2, 3, 3}>>> s{1, 2, 3}

添加元素

>>> s.add(4)>>> s{1, 2, 3, 4}# 重复添加不会有效果>>> s.add(4)>>> s{1, 2, 3, 4}

删除元素

>>> s = {1, 2, 3, 4}>>> s.remove(4)>>> s{1, 2, 3}

删除不存在元素会报KeyError错误

交集

>>> x={1,2,3,4}>>> y={3,4,5,6}>>> x&y{3, 4}# 或>>> x.intersection(y){3, 4}

并集

>>> x={1,2,3,4}>>> y={3,4,5,6}>>> x | y{1, 2, 3, 4, 5, 6}# 或>>> x.union(y){1, 2, 3, 4, 5, 6}

差集

>>> x={1,2,3,4}>>> y={3,4,5,6}# x与y的差集>>> x-y{1, 2}# 或>>> x.difference(y){1, 2}# y与x的差集>>> y-x {5, 6}# 或>>> y.difference(x){5, 6}

对称差集

对称差集就是,有集合a与集合b,a与b的差集跟b与a的差集的并集为对称差集。通俗的说就是[a中存在b中不存在的元素]与[b中存在a中不存在的元素]合起来组成的集合,也就是把ab中相同元素去掉,余下的元素所组成的集合。其实,就是两个集合进行异或操作(相同丢弃,不同保留)。

>>> x={1,2,3,4}>>> y={3,4,5,6}>>> x^y{1, 2, 5, 6}>>> y^x{1, 2, 5, 6}>>> x.symmetric_difference(y){1, 2, 5, 6}>>> y.symmetric_difference(x){1, 2, 5, 6}

集合的子集和超集

>>> xset([1, 2, 3, 4])>>> zset([1, 2, 3])>>> z.issubset(x) # z是x的子集True>>> x.issuperset(z) # x是z的超集True

更多文章:vien.我爱你

阅读全文
0 0
原创粉丝点击