Python数据结构
1. 元组(tuple)
元组由不同的元素组成,每个元素可以储存不同类型的数据,如字符串、数字甚至元组。元组是写保护的,即元组创建后不能再做任何修改操作。
1.1 元组的创建
Tuple(元组)由一系列元素组成,所有元素被包含在一对圆括号中。创建元组时可以不指定元素个数,但一旦创建后就不能修改长度
元组的创建格式如下:
tuple_name = (元素1,元素2,…)
如果创建空元组,只需要一对空的圆括号:
tuple_name = ()
如果创建的元组只包含一个元素,应在元素后面加上逗号,以区分元素不是表达式,而是元组:
tuple_name = (元素,)
元组的索引时从0开始计数的,因此,tuple_name[0]获得的是元组的第一个元素。
1.2 元组的访问
元组中元素的值通过索引访问,索引是一对方括号中的数字,也称之为下标。元组的访问格式如下:
tuple_name[n]
其中,n表示访问元组的第n个元素,索引n的值可以是0、正整数、负整数。负数索引从元组的尾部开始计数,最末端的元素索引表示为-1,依次类推。
注意:元组中的元素不支持添加、删除和赋值操作。
分片(slice)是元组的一个子集,分片是从第一个索引到第二个索引(不包括第二个索引指向的元素)所指定的所有元素。分片格式如下:
tuple_name[m:n]
其中,m、m可以是0、正整数、负整数。
元组还可以由其它元组组成。例如,二元元组可以表示为:
tuple_name=((元素1,元素2),(……),……)
2. 列表
元组由一组元素组成,列表可以实现添加、删除、修改和查找操作。
2.1 列表的创建
List(列表)由一系列元素组成,所有元素被包含在一对方括号中。列表创建后,可以执行添加、删除和修改操作。列表的创建格式如下:
list_name = [元素1,元素2,…]
列表的添加可以使用append(),该方法声明如下提示:
append(object)
其中,object可以是元组、列表、字典或任何对象。每次添加的元素将排在列表尾部。
列表的删除可以使用remove(),该方法声明如下提示:
remove(value)
该方法将删除value。如果value不存在 ,python将抛出ValueError异常。
列表的插入可以使用insert(),该方法声明如下提示:
insert(i,value)
在指定索引位置i处插入一项value。
2.2 列表的方法
?list_name[m:n] ---- 分片
?append(object) ---- 在列表的末尾添加一个对象object
?insert(index,value) ---- 在指定索引index处插入一个对象object
?remove(value) ---- 删除列表中首次出现的value值
?pop([index]) ---- 删除索引index指定的值;如果index不指定,则删除列表中最后一个元素
?extend(iterable) ---- 将iterable指定的元素添加到列表的末尾
?index(value,[start,[stop]]) ---- 返回value现在出现在列表中的索引
?sort(cmp=None, key=None, reverse=False) ---- 对列表元素在原位排序。注意这个方法改变列表,而不是返回排序后的列表。
?reverse() ---- 把列表元素反序。
?count(value) ---- 返回value在列表中出现的次数。
3. 字典
字典(Dictionary)是由“键-值”对组成的集合,字典中的值是通过键来引用的。
3.1 字典的创建
字典是由一系列的“键-值”对组成,“键-值”对之间用逗号隔开,并且被包含在一对花括号中。字典的创建格式如下:
dictionary_name={key1:value1,key2:value2,……}
其中,key1、key2表示字典的key值,value1、value2表示字典的value值。
如果需要创建一个空的字典,只需要一对空的花括号即可,代码如下所示:
dictionary_name={}
3.2 字典的访问
字典的访问与元组、列表有所不同,字典是通过key值来获得value值得,而不是通过索引。访问字典格式如下:
valuen = dictionary_name[keyn]
字典的添加和修改只需要一条赋值语句:
dictionary_name[‘x‘]=‘value‘
字典莫有remove()。字典元素的删除可以调用del()实现,例如:
del(dictionary_name[‘x‘])
字典也有一个pop()方法,该方法的声明和列表的pop()有所不同。字典pop()声明如下提示:
D.pop(k[,d]) ->v
pop()必须指定参数才能删除对应的值。其中,参数k表示字典的索引,如果字典中存在索引k,返回值v等于D[k],如果字典中么有找到索引k,返回值为d
若果要清空字典中的所有内容,可以调用字典的clear()
注意:由于字典是无序的,因此字典没有append()、remove()等方法。如果需要向字典中插入新元素,可以调用setdefault()
3.3 字典的方法
3.3.1 keys()和values()
keys()和values()方法分别返回字典的key列表和value列表。
dictionary_name.key()
dictionary_name.values()