定义
集合(set)是无序的、不重复的数据类型,因此可以去除列表或元组中重复的元素
集合(set)里面不能放可变数据类型
可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典
In [13]: s={'ecs','evs','vbs','evs','ces'}
In [14]: print s
set(['vbs', 'ecs', 'evs', 'ces'])
In [19]: s = set(('google','taobao','google'))
In [20]: print s
set(['google', 'taobao'])
In [15]: s = set('google')
In [16]: print s
set(['e', 'o', 'g', 'l'])
集合的关系测试操作
交集: list_1.intersection(list_2)
并集: list_1.union(list_2)
差集: list_1.difference(list_2)
list_2.difference(list_1)
对等差分 list_1.symmetric_difference(list_2)
子集 list_1.issubset(list_2)
父集 list_1.issuperset(list_2)
有无交集 list_1.isdisjoint(list_2)
交集: list_1 & list_2
并集: list_1 | list_2
差集: list_1 - list_2
list_2 - list_1
对等差分: list_1 ^ list_2
集合的添加
s.add(x)
将元素x添加到集合s中,如果元素已存在,则不进行任何操作
In [23]: s={'google','taobao','tencent'}
In [24]: s.add('facebook')
In [25]: print s
set(['facebook', 'taobao', 'google', 'tencent'])
s.update(x)
在集合中添加多项,跟的参数应该是可迭代类型可以是列表,元组,字典等,x可以有多个,用逗号分开
In [34]: s={'google','taobao','tencent'}
In [35]: s.update(['admin'],['a','b','c'],{'facebook'})
In [36]: print s
set(['a', 'c', 'b', 'admin', 'facebook', 'google', 'taobao', 'tencent'])
集合的删除
s.remove(x)
将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
注:discard()方法和remove()一样都是删除,但是remove里面如果没有元素会报错,而discard没有元素不会报错s.pop()
随机删除集合中的某个元素,并返回删除的元素,在python脚本中是这样的结果,然而在交互模式,pop 是删除集合的第一个元素(排序后的集合的第一个元素)
集和的其他操作
len(s)
显示集合set的长度
"1" in s
检测某元素是否为集合s的成员,返回布尔值
s.copy()
集合的浅拷贝,此处不深入研究
s.clear()
清空集合的所有元素