组合数据类型

关注精彩内容

要先点击这里哦

什么样的数据类型是组合数据类型呢?

在实际平常处理问题时,我们经常遇到的不是一个数据,而是一组数据,一组数据可以表达一个或者多个含义,那怎么让一组数据当成一个数据来处理呢?

今天我们接触的东西就是来解决这个问题,在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里面只python123这两个元素。

集合由大括号{}表示,元素之间用逗号隔开

集合中每一个元素唯一,不存在相同元素

集合之间元素无序

集合操作符

集合之间操作有四种

并运算 差运算

交运算 补运算

S|T:返回一个新集合,包括在集合S和T中的所有元素

S-T:返回一个新集合,包括在集合S但不在T中的元素

S&T:返回一个新集合,包括同时在S和T中的元素

S^T:返回一个新集合,包括集合S和T中的非相同元素

S

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) // 将集合转换为列表

这时候就完成了去重,具体的操作,你们可以实践一下。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181120G214P000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励