集合定义
Python中的集合概念和数学中的集合相似,指一组无序的,互不相同的元素的集合。Python中,集合中的数据类型特别强调是不可变的数据类型,即元素一旦确定便不可更改。
集合类型的定义
- 集合用{}表示,元素之间用‘,’分隔。
- 用{}或者set()建立集合类型。
- 如果要建立一个空集合,则必须用set()。
下面看两个例子
>>> A={1,'a',"python"} #用{}建立一个集合
>>> A
{1, 'python', 'a'}
>>> B=set("python") #用set()建立集合,字符串被拆分
>>> B
{'o', 'p', 'h', 't', 'n', 'y'}
>>> C={"python",1,"python",1} #相同元素被删除
>>> C
{1, 'python'}
>>> C={"python","python",1} #相同元素不能相邻出现,报错
SyntaxError: unexpected indent
集合之间的运算
集合之间有6种运算关系,如下表
操作符 | 说明 |
---|---|
S l T | 返回一个新的集合,包含S和T 的所有元素 |
S - T | 返回一个新的集合,包含在S中但不在T中元素 |
S & T | 返回一个新的集合,包含S和T中的相同的元素 |
S ^ T | 返回一个新的集合,包含S和T中不相同的元素 |
S >T 或S>=T | 返回True,False,判断两者包含关系 |
S < T S <=T | 返回True,False,判断两者子集关系 |
集合的操作函数及方法
集合本身有一些方法来增加或者删除元素,清空集合等,见下表
方法 | 说明 |
---|---|
S.add(x) | 如果x不在集合S中,添加x到S中 |
S.discard(x) | 如果x在S中,删除x,如果不在也不会报错 |
S.remove(x) | 如果x在S中,移除x,如果不在则产生KeyError异常 |
S.clear() | 清空集合S |
S.pop() | 随机返回一个元素,如果S为空,产生KeyError异常 |
S.copy() | 返回S的一个副本 |
S=set(x) | 将其他类型的x转化为集合类型 |
集合遍历
集合遍历可以用for循环达到目的,如下代码
>>> S={1,2,3}
>>> for item in S:
print(item)
1
2
3
>>>
也可以用try,while遍历
try:
while(True):
print(S.pop())
except:
pass
集合的运用
利用集合不可重复性的特点,可以方便的对一组数据进行去重操作,利用set()函数将一组其他的数据类型转化为集合类型便可以,有时这十分有用,可以简化许多步骤。