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'}