五、数据集合
在Python中,数据集合有:”list“、”tuple“、”dict“与”set“四种,下面分别对四种数据集合的应用进行讲解。
5.1 list
list是Python中一种有序的可变的数据集合,我们称之为列表,我们可以随时添加、删除和修改其中的元素。
通过第3行代码可以看出,定义list方法是用一个”[]“将元素包含起来,元素间用”,“号分隔。list中的元素的数据类型可以不同,除了整数、浮点数、布尔值、字符串等,也可以是list或其它数据集合。
通过第5行代码可以看出,print方法,除了正常输出外,还具有格式化输出功能,其中的”%d“代码输出的内容为整型(”%s“为字符串,”%f“为浮点型),而len()函数可以获得list元素的个数。
通过第6行代码可以看出,可以通过”list名称[索引编号]“的形式获得到指定编号的值,同时需要注意,索引编号是从0开始的。
通过第3行代码可以看出,原始定义的list内容为:
‘one’, ‘two’, ‘three’, 1, 1.2, 3, True, False |
通过第4行代码”liName.pop(6)“可以看出,删除了索引编号为6的元素,得到的结果如下:
‘one’, ‘two’, ‘three’, 1, 1.2, 3, False |
通过第5行代码”liName.pop()“可以看出,删除了最后一项元素,得到的结果如下:
‘one’, ‘two’, ‘three’, 1, 1.2, 3 |
通过第6行代码”liName.append(4)“可以看出,在list中,追加了一个数值4,得到的结果如下:
‘one’, ‘two’, ‘three’, 1, 1.2, 3, 4 |
通过第7行代码”liName[4] = 2“可以看出,修改了索引编号为4的元素内容,得到的结果如下:
‘one’, ‘two’, ‘three’, 1, 2, 3, 4 |
通过第8行代码”liName.insert(3, ‘four’)“可以看出,在索引编号为3处插入元素”four”,得到的结果如下:
‘one’, ‘two’, ‘three’, ‘four’, 1, 2, 3, 4 |
通过上面的示例,可以得知,list的常用操作有:
-
追加元素 append();
-
插入元素 insert();
-
删除元素 pop();
-
修改元素 list名称[索引编号] = 修改的值。
5.2 tuple
tuple是Python中别一种有序但不可变的数据集合,我们称之为元组。它与list类似,唯一不同的是,tuple一旦创建就不能修改。其表示方法是用一对”()“将元素包含,用”,“分隔。
第3行”a = ()“定义了一个空的元组。
第4行”b = (1)“实质并非元组,而是将数值1赋给了变量b,它等价于”b = 1“。
第5行”c = (1, )“定义了只有一个的元组,其值为”1“,为了避免歧义,Python规定,在定义1个元素的元组时,元素后面必须加一个逗号。
第6行”d = (1, 2)“定义了具有两个元素的元组,分别为”1“和”2“。
第7行”print a, b, c, d“打印了定义的元组变量b,print功能强大吧,可以直接打印元组。
5.3 dict
dict是Python内置的字典,全称为dictionary,它是一种以”key-value“形式存储的数据集合。dict中的中的”key“是唯一的,且不可变的对象。
第3〜4行,定义了字典,并对其进行了输出操作。
第5〜6行,删除了key值为“score”的元素,并对其进行了打印操作。
第7〜8行,修改了key值为“age”的元素内容。
需要大家注意的是,字典内部放的顺序与放入的顺序是完全没有关系的,Python中,dict是根据”key”值有序存放的,它的目的是加快查找速度。相对list而言,dict查找和插入速度极快,不会因为key的增长而影响其速度。
5.4 set
set是一个有序且不重复的数据集合。Set中的元素都必须是不可变对象。与dict相比,它是一组key的集合,但不会存储value的内容。在set中,没有重复的key,所以要创建一个set,就需要一个list作为输入的集合。
第3〜4行,定义了set,并对其进行了输出操作,需要注意的是set的元素是不会出现重复的,所以在打印时,只看到了一个元素。
第5〜6行,添加了一个元素,并对其进行了打印操作。
第7〜8行,删除了一个元素,并对其进行了打印操作。
由于set是无序、且无重复元素的集合,从数学角度来看,集合是可以进行交集、并集等集合运算的,接下来看一个例子。
第6行的”&“,可以实现两个set的交集。
第7行的”|“,可以得到两个set的并集。