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

2019-02-16 09:41:41   Python
  Python  

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}

集合的子集和超集

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

更多文章:vien.我爱你

vien.tech版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/77
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册