数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码。本文主要介绍Python提供的几种内置数据结构,包括元组、列表、字典的定义和基本操作方法以及介绍典型函数的使用方法。
元组结构
元组由一系列元素组成,包含在一对圆括号中。元组创建后不可修改。创建元组方法如下:
tuple = () # 空元组
tuple = ('Python',) #单元素元组,后面必须包含一个逗号
tuple = ('Python', 'Java', 'Shell') #多元素元组
tuple = (('Python', 'Java'), 'Shell', ['C++', 'Ruby'], 20) #元组中的元素可以是不同类型的数据
元组的基本操作,详细介绍可以通过help(tuple)查看。
(1)通过下标访问指定元素值
tuple[0] #访问第一个元素,下标从0开始
(2)通过切片访问某段的值
tuple[1:3] #获取下标1和2的值,不包括下标3
(3)遍历访问元组中的所有元素
for i in range(len(tuple)):
print "tuple[%d] = %s" % (i, tuple[i])
(4)元组的拆包赋值。可用于获取函数返回的多个值。
val1, val2, val3 = tuple #注意:变量个数要与元组中的元素个数一致。
列表结构
列表中是由一系列元素组成,包含一对方括号中。列表可以添加、删除、查找操作,元素值可修改。列表创建方法如下:
lst = [] # 空列表
lst = ['Python'] #单元素列表
lst = ['Python', 'Java', 'Shell'] #多元素元组
lst = [('Python', 'Java'), 'Shell', ['C++', 'Ruby'], 20] #列表中的元素可以是不同类型的数据
列表的基本操作方法,详细介绍可以通过help(list)查看。
lst.append(object) #在列表的末尾添加一个对象object
lst.insert(index,object) #在指定的索引index处插入一个对象object
lst.remove(value) #删除列表中首次出现的value值
lst.pop([index]) #删除索引index指定的值,如果不指定,删除列表中的最后一个元素
lst.extend(iterable) #将iterable指定的元素添加到列表末尾
lst.index(value, [start,[stop]]) #返回value出现在列表中的索引
lst.sort(cmp=None, key=None, reverse=False) #列表的排序
lst.reverse(...) # 列表的反转
value in lst #判断指定value是否存在于列表中
value not in lst #判断指定的vale是否不在列表中
列表的基本操作方法实例
>>> lst = ['1','2','3'] #初始化一个列表
>>> lst.append('4') #使用append()函数条件一个值
>>> lst
['1', '2', '3', '4']
>>> lst.insert(0,'0') #在指定位置0插入字符'0'
>>> lst
['0', '1', '2', '3', '4']
>>> lst.remove('3') #删除列表中的字符'3'
>>> lst
['0', '1', '2', '4']
>>> lst.pop() #将指定位置字符删除,默认是最后一个位置。
'4'
>>> lst
['0', '1', '2']
>>> lst.extend(['3','4','5']) #合并列表
>>> lst
['0', '1', '2', '3', '4', '5']
>>> lst.index('3')
3
>>> lst.sort() #对列表lst进行排序,原地置换
>>> lst
['0', '1', '2', '3', '4', '5']
>>> lst.reverse() #对列表lst进行反转输出,原地置换
>>> lst
['5', '4', '3', '2', '1', '0']
>>> '3' in lst #判断指定字符'3' 是否在lst中,存在则返回True
True
>>> 3 in lst #3不存在lst中,返回False
False
>>> 3 not in lst #3不存在lst中,返回True
True
sort()函数典型实例介绍
1、按照指定字段排序列表元素
>>> lst = ['192.168.0.1 Success','192.168.0.10 Fail','192.168.0.2 Success']
>>> lst.sort(key = lambda x:int(x.split(' ')[0].split('.')[3]))
>>> print lst
['192.168.0.1 Success', '192.168.0.2 Success', '192.168.0.10 Fail']