第四章 Python
数据结构
python
内置数据结构为元组,列表,字典和序列。
4.1 元组结构
元组由一系列元素组成,所有元素被包含在一对圆括号中。如果创建的元组只包含一个元素,注意在元素后加一个“逗号”。索引是一对方括号中的数字,索引也称为“下标”。分片索引可以分为正数和负数,两个索引之间用冒号分割。
tuple[0:3]
记住python
在切片方面是有前无后。
tuple[0][1]
表示访问tuple
元素中的第一个元组的第二个元素。 创建元组的过程,成为“打包”;“解包”可以将元组中的各个元素分别赋值给多个变量。例子:
#打包
tuple = ("apple", "banana", "orange", "grape")
#解包
a, b, c, d = tuple
print (a, b, c, d)
range()
返回一个递增或递减的数字列表,列表的元素值由3个参数决定。参数start
表示列表开始的值,默认值为0。参数stop
表示列表结束的值,该参数不可缺少。参数step
表示步长,每次递增或递减的值,默认值为1。
range([start,]stop[,step])
4.2 列表的结构
列表是python
中非常重要的数据类型,通常作为函数的返回类型。列表可以实现添加,删除和查找操作,元素的值可以被修改。列表的添加可以调用append()
,列表的删除可以调用remove()
,insert()
将元素插入指定的索引位置。调用pop()
可以取出列表中的最后一个元素。
列表的连接提供了两种方式:一种是调用extend()
连接两个不同的列表,另一种是使用运算符“+”或“+=”。
列表的查找提供两种方式,一种是使用index
方法返回元素在列表中的位置,另一种方法是使用关键字“in
”来判断元素是否在列表中。
调用sort()
,元素按首字母升序排序,调用reverse()
反转列表中元素的排列顺序。
堆栈是指最先进入堆栈的元素最后才输出,符合“后进先出”的顺序。队列是指最先进入队列的元素最先输出,符合“先进先出”的顺序。
4.3 字典结构
字典是由“键-值”对组成的集合。“键-值”对之间用“逗号”隔开,并且被包含在一对花括号中。如果需要创建一个空的字典,只需要一对花括号即可。注意字典的“键”是区分大小写的。python
代码中大小写都是有区别的。print()
中也可以使用字典:
print ("%s, %(a)s, %(b)s" % {"a":"apple", "b":"banana"})
输出结果为:
{"a":"apple", "b":"banana"},apple,banana
元组和列表是通过数字索引来获取对应的值,字典是通过key
值获取相应的value
值。字典与列表不同,字典没有remove()
操作,字典元素的删除可以调用del()
实现。如果需要清除字典里所有内容,可以调用clear()
。下面这段代码演示了常用的操作:
#字典的添加,删除,修改操作
dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"}
dict["w"] = "watermelon"
del(dict["a"]) #删除字典中键为a的元素
dict["g"] = "grapefruit" #修改字典中键为g的值
print (dict.pop("b")) #弹出字典中键为b的元素
print (dict)
dict.clear() #清除字典中所有元素
print (dict)
由于字典是无序的,因此字典没有append()
,remove()
等方法。如果要向字典添加新元素,可以调用setdefault()
。使用for...in
语句完成遍历。使用字典的items()
也可以实现遍历操作。使用元组,列表或字典作为value
值创建的字典,称为混合型字典。
key()
和value()
分别返回字典的key
列表和value
列表。另一种获取value
值的办法是使用字典的get()
,这样可以减少代码的使用。列表的排序可以使用sorted()
实现,字典的排序也可以使用该函数。
4.4 序列
序列是具有索引和切片能力的集合。元组,序列和字符串都属于序列。使用方法在介绍元组和列表的时候都已经介绍过。