第五章数据结构.pdf
第五章数据结构
在实际工作中,我们往往需要处理具有一种或多种关系的一组数据,比如一个班级的学生成绩、某一
时间段内天网摄像头拍摄的图像数据。在计算机科学中,把这些具有一种或多种关系的数据元素集合称为
数据结构。可以把数据结构简单理解为存储数据的容器。Python内置多种数据结构,在本章我们介绍4种
基本数据结构:列表、元组、字典、集合。
5.1索引与切片
5.1.1索引
在操场上列队时,所有同学组成了一个有顺序的队列,经过报数,每个同学都有一个不同的数字,通
过这个数字可以找到相应同学。在Python中,把这个队列称为序列,编号称为索引或下标。Python提供
两种索引方式:
012……n
正数索引,从0开始递增
-n……-3-2-1
负数索引,从-1开始递减
注意:当采用负数索引时,是从-1开始,而不是从0开始。
当访问一个元素时,既可以用正数索引,也可以用负数索引。
5.1.2切片(分片)
使用索引可以访问序列中单个元素,但有时需要访问序列中指定范围内的元素,即序列的子序列,
Python定义了一个称为切片的操作符[::]来得到子序列。
语法格式:[start_index:end_index:step]
表示从start_index索引对应的元素开始,每隔step个元素取出来一个,直到取到end_index对应
的元素结束,但不包括end_index索引位置上的元素。
start_index表示起始位置,end_index表示终止位置,step表示步长。
实践:在IDLE的交互模式下输入下列语句,观察结果并总结。
li[1,2,3,4,5,6,7,8,9]
li[::]
li[0:5]
li[0:8:]
li[3::2
li[-1:-5:-1]
li[:3:-1]
我们可以总结出:
(1)start_index、end_index、step任何一个都可以省略,step的默认值为1;
(2)step可以取正整数、负整数,但不能等于0,step为正整数时表示从左向右截取,step为负整
数时表示从右向左截取;
(3)当step为正整数时,start_index的默认值为0,end_index的默认值为最后1个元素的索引;
1
当step为负整数时,start_index的默认值为-1,end_index的默认值为第1个元素的索引;
(4)每个元素都有两个索引,一个是从左向右的依次编号(从0开始),一个是从右向左的依次编号
(从-1开始)。
5.2列表(list)
列表与我们在操场上列队时类似,是由一系列按一定顺序排列的元素组成。只要用逗号把各个数据项
使用方括号“[]”括起来就创建了一个列表。如:
ages[13,14,16,13,15]
names[李晓,张慧,王姗姗]
students[lixiao,14,zhanghui,15]
Python中列表与其它编程语言的数组非常类似,使用非常灵活。
5.2.1列表的创建
Python中可以有多种方法创建列表,下面分别介绍。
1.使用赋值语句直接创建
语法格式如下:
listname[element1,element2,……]
其中,listname表示列表名,element1,element2表示列表的元素。listname可以是任何符合Python
命名规则的变量名。列表中的元素可以是不同的数据类型,也可以是列表等Pytthon支持的其它数据类型,
元素的个数没有限制。
例子:
school_name[贵阳一中,铜仁一中,凯里一中,思南中学,德江一中]
student_score[