Python中的序列与集合

Python中的序列与集合

之前有说到Python中的字符串、列表以及元组在很多方面上比较相似,很大程度是因为它们的数据存储是有序的,也就是我们统称的序列,这才能让我们通过序号进行数据的获取,就像下面这样。

Python中的序列与集合

既然已经有了个统称,那么必然它们可以有相同的特性,这里列举了几个常用的方法,针对有序序列都是通用的。

Python中的序列与集合

如图可知这几个方法的大体意思,在我们判断一个元素是否存在于序列的时候会采取 in 或者not in 操作,返回值就是bool类型;使用 len 方法来获取序列的长度,通过 max 和 min 来得到序列中的最大值和最小值。

不过这里有个需要提醒的就是在我们判断字符串的极大值和极小值的时候,我们是通过Ascll码来比较的,所谓的这个码其实就是数值,我们通过 ord 方法可以得到字符串或者数字的Ascll码,然后再来比较得到极大值和极小值。(空字符串也是有Ascll码的)

说了序列那么多,我们现在进入正题哈,说说集合,一个有区别于序列的数据类型。

Python中的序列与集合

如图所示,集合是由花括号包裹的表现形式,而且大体也拥有部分序列的特性,当然集合与序列最大的不同就是,集合是无序的,也就是说我们不能通过序号去得到相应的集合元素。那怎么得到集合中的元素呢,这个之后再说,我们先来看集合的一些特性。

Python中的序列与集合

对比着图中的输出结果,可能有人大概猜到一些东西,这里介绍了三种运算符。首先看看我们的减号在集合中的意义,当一个集合减去另一个集合得到一个新集合,其实也就类似于删除的感觉,在数学中我们叫做差集(不理解可以翻课本哈),在第一个集合中去除第二个集合中的元素,可能有人问,如果第二个集合更大,那么得到的就应该是空的集合,不理解的可以尝试看看

然后我们再来看 & 操作,它代表的意思是取出两个集合*同的元素组成的新集合,在数学中我们叫做交集,于此关于 | 操作,它代表的就是两个集合的合并,在数学中叫做并集,而这里又涉及到集合的一个重要特性,也就是不重复性,在一个集合中是不会出现相同的元素,不管是如何的操作,最后都会去除其中的重复元素。

说完这几种集合中的操作,我们再来看如何表示一个空的集合呢,如下:

Python中的序列与集合

由图可知,仅仅一个花括号并不能表示一个空集合,反而表示的是另外的一个数据类型,这个类型我们之后再说,那真正表示一个空集合就是 set() 。

好了,序列和集合的就说这么多,后面再说说其它的数据类型。