6.1 组合数据类型概述

6.1 组合数据类型概述

计算机不仅对单个变量表示的数据进行处理,更多的情况是对一组数据进行批量处理。如对一个班级的学生信息进行处理,统计成绩;对一组单词进行管理,如{[python,蟒蛇],[data,数据],[function,函数],[list,列表]},输出相应的中英文,统计单词长度。

以学生信息为例,如果要统计学生信息,为每个学生都建立一个变量,则会需要非常多的变量名,如用s01,s02,…,sn等变量名来存储第一个,第二个,…,第n个学生的信息,如果一个学院的学生数量为500,这种表示方式将是一场灾难。如果把这些学生信息看成一个数据整体,只用一个变量对应这个整体,涉及每一个学生时采用下标的形式,如s表示学生整体,s[0],s[1],…,s[n]分别表示第一个,第二个,…,第n个学生的信息,则对于信息的访问就会变得简单易管理,并且能与循环操作结合。

在前面的章节中介绍了Python中有3种数字类型(整数、浮点数、复数)、一种字符串类型。这些类型一次仅能表示一个数据,这种表示单一数据的类型称为基本数据类型。然而实际计算中存在大量同时处理多个数据的情况,这就需要将多个数据组织起来,通过单一的表示使数据操作更有序、更容易。这种被组合成一个整体的数据集合称为组合数据类型。

组合数据类型能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易,根据数据之间的关系,组合数据类型可分为3类:序列类型、集合类型、映射类型。

序列类型是一个元素向量,元素之间存在先后关系,通过序号进行访问,元素之间不排他,即可出现相同值的元素。如前面介绍过的字符串其实就是一个序列类型。序列类型就像一个编号的“数据收纳盒”,能以一种规则的下标索引方式(收纳盒名字+数字序号)访问每个数据,如图6-1(a)所示。

集合类型是一个元素的集合,元素之间无序,集合中每个元素值都具有唯一性。集合类型就像一个带有标签的容器,如图6-1(b)所示。

映射类型是“键-值”数据项的集合,每个元素都是一个键值对,表示为(key,value),其中key具有唯一性。映射类型就像一个“标签收纳盒”,给每个数据都贴上唯一的标签,可以通过具有特定意义的名字或记号来获得数据。如现实生活中的字典,可以通过标签(即关键字)来索引数据,如图6-1(c)所示。

在Python中,每一类组合数据类型都对应一个或多个具体的数据类型,分类构成如图6-2所示。