最基本的数据结构是序列,序列中每个元素被分配一个序号-元素的位置,也称索引。第一个索引为0,最后一个元素索引为-1。
python中包含6种内建的序列:元组、列表、字符串、unicode字符串、buffer对象和xrange对象。元组与列表的区别:列表可以对其元素进行修改,元组不能改动其元素。
序列的通常操作:索引、分片、加、乘、成员资格(in)、迭代。python中关于序列的内建函数:计算序列长度、找出最大元素和最小元素。
1、索引
1 >>> greeting = \'hello\' 2 >>> greeting[0] 3 \'h\' 4 >>> greeting[-1] 5 \'o\' 6 >>> \'hello\'[0] 7 \'h\'
2、分片
1 >>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 2 >>> numbers[3:6] 3 [4, 5, 6] 4 >>> numbers[-3:] 5 [8, 9, 0] 6 >>> numbers[:3] 7 [1, 2, 3] 8 >>> numbers[:] 9 [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 10 >>> numbers[0:10:2] 11 [1, 3, 5, 7, 9] 12 >>> numbers[::4] 13 [1, 5, 9] 14 >>> numbers[8:3:-1] 15 [9, 8, 7, 6, 5]
3、序列相加
#相同类型的序列才能进行连接操作
4、乘法
#初始化一个长度为10的列表 >>> sequence = [None]*10 >>> sequence [None, None, None, None, None, None, None, None, None, None]
5、成员资格
>>> permission = \'sdnk\' >>> \'dn\' in permission True
6、长度、最小值及最大值
#len、min、max
列表的内建函数:
7、列表的元素修改-del、split
>>> names = [\'Alice\',\'Bob\',\'Vera\',\'Amy\',\'Beth\',\'2\',\'23\'] >>> names[1] = \'venus\' >>> names [\'Alice\', \'venus\', \'Vera\', \'Amy\', \'Beth\', \'2\', \'23\'] >>> del names[1] >>> names [\'Alice\', \'Vera\', \'Amy\', \'Beth\', \'2\', \'23\'] >>> names = list(\'perl\') >>> names [\'p\', \'e\', \'r\', \'l\'] >>> names[2] = \'xliu vera\' >>> names [\'p\', \'e\', \'xliu vera\', \'l\'] >>> names[2] = (\'l\',\'e\') >>> names [\'p\', \'e\', (\'l\', \'e\'), \'l\'] >>> number = [1,3,5] >>> number[1:1] = [6,8,7] >>> number [1, 6, 8, 7, 3, 5] >>> number[1:4] = [] >>> number [1, 3, 5]
列表方法:方法与对象联系紧密,对象可以是列表,数字,字符串或者其他类型。格式:对象.方法(参数)
8、列表-append、count、extend、index、insert、pop
>>> lst = [1,2,3] >>> lst.append(4) >>> lst [1, 2, 3, 4] >>> lst.count(2)
>>> lst1 = [6,7,8] >>> lst.extend(lst1) >>> lst [1, 2, 3, 4, 6, 7, 8] >>> lst.index(3) 2 >>> lst.insert(3,\'Bob\') #格式:操作对象.insert(位置,插入内容) >>> lst [1, 2, 3, \'Bob\', 4, 6, 7, 8] >>> lst.pop() #默认的情况下,删除列表的最后一个元素并返回值 8 >>> lst [1, 2, 3, \'Bob\', 4, 6, 7] >>> lst.pop(0) #移除索引为0的元素并返回其值 1 >>> lst [2, 3, \'Bob\', 4, 6, 7]
>>> lst.remove(\'Bob\')
>>> lst
[2, 3, 4, 6, 7]
>>> lst.reverse()
>>> lst
[7, 6, 4, 3, 2]
9、列表-sort
>>> x = [1,3,5,12,9,11,0,4] >>> y = x[:] #调用x[:]得到的是每个元素的分片,有效的复制了列表x >>> y.sort() >>> x [1, 3, 5, 12, 9, 11, 0, 4] >>> y [0, 1, 3, 4, 5, 9, 11, 12] >>> y = x #x,y同指一个列表,任意改变其中之一另一个也会改变 >>> y.sort() >>> x [0, 1, 3, 4, 5, 9, 11, 12] >>> y [0, 1, 3, 4, 5, 9, 11, 12] #获取一个已经排序好的副本 >>> x = [1,4,3,6,2,7,3] >>> y = sorted(x) >>> x [1, 4, 3, 6, 2, 7, 3] >>> y [1, 2, 3, 3, 4, 6, 7] #以上都是按照默认的排序方式 >>> x = [\'hi\',\'we\',\'are\',\'family\',\'2\'] >>> x.sort(key = len) #按照字符的长度排序 >>> x [\'2\', \'hi\', \'we\', \'are\', \'family\'] >>> x.sort(reverse = True) #反向排序 >>> x [\'we\', \'hi\', \'family\', \'are\', \'2\']
10、元组:基本的元组操作除了创建元组及访问元组外没有其他的操作
>>> 1,2,3 (1, 2, 3) >>> () #创建空元组 () >>> 42, #创建只有一个元素的元祖 (42,) >>> (42,) (42,) >>> tuple([1,2,3]) #tuple 将序列转化为元组,功能与list相近 (1, 2, 3)