【Python】组合数据类型【一】
在实际平常处理问题时,我们经常遇到的不是一个数据,而是一组数据,一组数据可以表达一个或者多个含义,那怎么让一组数据当成一个数据来处理呢?
今天我们接触的东西就是来解决这个问题,在Python中,有三种最重要的数据类型:集合类型,序列类型,字典类型。
今天主要介绍一下集合类型及其操作。
集合类型的定义
集合是多个元素的无序组合
集合类型与数学中的集合概念一致
集合元素之间无序,每个元素唯一,不存在相同元素
集合元素不可更改,不能是可变数据类型
什么叫不可变数据类型呢 就是不能修改
建立集合类型{}或者set()
建立空集合类型,必须使用set()
我们建立一个集合:
A={“PYTHON”,123,(“PYTHON”,123)}
同样我们也可以使用set方法
>>>B=set(“pypy123”)
但是因为唯一性 所以会去掉相同的元素,B只会有5个元素:{‘1’,’p’,’2’,’3’,’y’},而且顺序是无序的。
看下面的例子
>>>C={“python”,123,”python”,123}
由于集合不能包含相同元素,所以集合C里面只python 123 这两个元素。
集合由大括号{}表示,元素之间用逗号隔开
集合中每一个元素唯一,不存在相同元素
集合之间元素无序
集合操作符
集合之间操作有四种
并运算 差运算
交运算 补运算
S|T:返回一个新集合,包括在集合S和T中的所有元素
S-T:返回一个新集合,包括在集合S但不在T中的元素
S&T:返回一个新集合,包括同时在S和T中的元素
S^T:返回一个新集合,包括集合S和T中的非相同元素
S<=T或S返回TRUE和FALSE,判断S和T的子集关系
S>=T或S>T:返回TRUE 和FASLE判断S和T的包含关系
看例子
这样的集合运算是比较简单的
只需要理解基础的四种
集合处理方法
S.add(x) :如果x不在集合S中,将x增加到S;
S.discard(x) : 移除S中的元素,如果x不在S中,不报错;
S.remove(x) : 移除S中的元素,如果x不在集合中,产生KeyEooro异常;如果产生异常,我们可以使用try...except()来捕捉这种异常,所以,我们使用函数的时候,如果编写异常代码时使用了异常处理,那就可以考虑使用第三种方法来移除元素。
S.clear() :移除S中所有的元素
S.pop() :随机取出一个元素(取出的概念就是把这个元素返回给用户,同时在S中删除),若S为空 ,产生KeyEooro异常。
S.copy() :返回集合S的一个副本;
len(S) :返回集合元素的个数;
x in S :判断元素x是否在S中,如果在就返回True,否则返回False;
Set(X) :将其他类型的变量转变为集合类型。
上面就是最常用的九个方法
看例子
因为集合里的元素是没有顺序的
所以for...in... 返回也是没有顺序的
另外我们还可以使用while的方法来遍历集合
pop()方法在集合为空的时候会产生一个异常,捕捉异常,然后退出,这样可以产生同样的效果。集合A在完成之后会成为空集合。
集合类型应用场景
最基础的就是包含关系的比较:
>>>”p” in {“p”,”y”,123} True >>>{“p”,”y”}>={“p”,”y”,123} False
此外呢,集合有一个非常很重要的应用场景....
数据去重
我们看一个例子
比如给出一个列表
>>>ls=[“p”,”p”,”y”,”y”,123] s=set(ls) //S中已经去掉了重合元素 lt=list(s) // 将集合转换为列表
这时候就完成了去重,具体的操作,你们可以实践一下。