Python3.0入门 Set集合

本文介绍了Python3.0中的Set集合,Set是唯一且不可变的无序集合,支持数学集合理论中的各种操作。创建集合可以使用内置的set函数,集合支持数学运算,如并集、交集等。可以通过add()方法添加元素,update()方法批量添加元素,而remove()方法用于删除元素。

set集合属于①唯一的,②不可变的对象的一个③无序集合,这些对象支持与数学集合理论相对应的操作。

1.要创建一个集合对象,像内置的set函数转递一个序列或其他可迭代的对象

>>> x = set('abcd')
>>> x
{'b', 'c', 'd', 'a'}
>>> y = set([1,2,3,4])
>>> y
{1, 2, 3, 4}

2.集合通过表达式操作符支持一般的数学集合运算

>>> x = set('abcde')
>>> y = set('bdxyz')
>>> 'e' in x
True
>>> x - y        #两个集合的差集(项在x中,但不在y中)
{'c', 'a', 'e'}
>>> x | y        #两个集合的并集
{'c', 'y', 'a', 'e', 'b', 'z', 'd', 'x'}
>>> x & y        #两个集合的交集{'b', 'd'}>>> x ^ y        #两个集合的对称差集(项在x或y中,但不会同时出现在二者中){'c', 'y', 'a', 'x', 'e', 'z'}>>> x>y,x<y(False, False)
>>> s = set([3,5,9,10])
>>> t = set([5,6,9])
>>> s.issubset(t)    #测试是否 s 中的每一个元素都在 t 中(s <= t)
False
>>> s.issuperset(t)    #测试是否 t 中的每一个元素都在 s 中(s >= t)
False
>>> s.union(t)    #返回一个新的 set 包含 s 和 t 中的每一个元素(s | t)
{3, 5, 6, 9, 10}
>>> s.intersection(t)    #返回一个新的 set 包含 s 和 t 中的公共元素(s & t)
{9, 5}
>>> s.difference(t)    #返回一个新的 set 包含 s 中有但是 t 中没有的元素(s - t)
{10, 3}
>>> s.symmetric_difference(t)    #返回一个新的 set 包含 s 和 t 中不重复的元素(s ^ t)
{3, 6, 10}
>>> s = set([3,5,9,10])
>>> t = set([5,6,9])
>>> s.update(t)    #返回增加了 set "t"中元素后的 set "s"(s |= t)
>>> s
{3, 5, 6, 9, 10}

>>> s = set([3,5,9,10])
>>> t = set([5,6,9])
>>> s.intersection_update(t)    #返回只保留含有 set "t"中元素的 set "s"(s &= t)
>>> s
{9, 5}

>>> s = set([3,5,9,10])
>>> t = set([5,6,9])
>>> s.difference_update(t)    #返回删除了 set "t"中含有的元素后的 set "s"(s -= t)
>>> s
{3, 10}

>>> s = set([3,5,9,10])
>>> t = set([5,6,9])
>>> s.symmetric_difference_update(t)    #返回含有 set "t"或者 set "s"中有而不是两者都有的元素的 set "s"(s ^= t)
>>> s
{3, 6, 10}

3.通过add(key)方法可以添加元素到set中,可以重复添加,但是没有效果:

>>> s = set('abcd')
>>> s.add('ef')
>>> s
{'c', 'a', 'b', 'd', 'ef'}

4.通过update(key)方法可以添加多个元素到set中:

>>> s = set('abcd')
>>> s.update('ef')
>>> s
{'c', 'a', 'e', 'f', 'b', 'd'}

5.通过remove(key)方法可以删除元素:

>>> s = set('abcd')
>>> s.remove('b')
>>> s
{'c', 'd', 'a'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值