一.概述
1.数据结构是通过某些方式组织在一起的数据元素的集合,这些元素可以是数字或者字符,也可以是其他数据结构;
2.最基本的数据结构是序列,序列中的每个元素被分配一个序号,即索引,从0开始;
3.Python中有六种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象,xrange对象;
4.列表可以修改,元组则不能;
5.None是Python内内建的一个空值;
6.列表用[],元组用();
7.元组可以在映射(和集合的成员)中当做键使用,而列表不行。
二.基本操作
1.所有序列都可以进行某些特定的操作:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、检查某个元素是否属于序列的成员(成员资格)、内建的max(),min(),len()函数;
2.索引:元素可以通过索引访问,索引从0开始,最后一个的编号是-1;
3.分片:可以通过分片访问一定范围内的元素,还可以指定步长(步长不能为零,可以是负数,表示从右开始取),使用方法:lst[begin,end[,step]],注意:访问的元素包括第一个索引,不包括第二个索引,也可以不指定第一个索引,这表示从第一个元素开始,如果不指定第二个索引,表示取到最后一个元素为止,如果都不指定,取出全部元素;
>>> a = list('helloworld')
>>> a
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>> a[:]
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>> a[:3]
['h', 'e', 'l']
>>> a[5:]
['w', 'o', 'r', 'l', 'd']
>>> a[::2]
['h', 'l', 'o', 'o', 'l']
4.序列相加:使用“+”可以实现序列连接的操作;
>>> a + list('!!')
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', '!', '!']
5.乘法:用“*”可以实现重复该序列n次;
>>> list('hello') * 2
['h', 'e', 'l', 'l', 'o', 'h', 'e', 'l', 'l', 'o']
6.成员资格:可以实现检查一个元素是否在序列中,in操作,返回布尔值(True,False);
>>> a
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>> 'h' in a
True
>>> 'z ' in a
False
7.元素赋值:lst[index]=value;
>>> a
['h', 'e', 'a', 'l', 'l', 'o', 'abcd', 'a', 'b', 'c', 'd']
>>> a[2]='b'
>>> a
['h', 'e', 'b', 'l', 'l', 'o', 'abcd', 'a', 'b', 'c', 'd']
8.删除元素:del lst[index];
>>> a
['h', 'e', 'b', 'l', 'l', 'o', 'abcd', 'a', 'b', 'c', 'd']
>>> del a[2]
>>> a
['h', 'e', 'l', 'l', 'o', 'abcd', 'a', 'b', 'c', 'd']
9.分片赋值:可以使用与原序列不等长的序列将分片替换,也可以在不需要替换任何原有元素的情况下插入新的元素,也可以删除元素;
>>> a
['h', 'e', 'l', 'l', 'o', 'abcd', 'a', 'b', 'c', 'd']
>>> a[5:]='a'
>>> a
['h', 'e', 'l', 'l', 'o', 'a']
>>> a[5:5]='b'
>>> a
['h', 'e', 'l', 'l', 'o', 'b', 'a']
>>> a[5:6]=[]
>>> a
['h', 'e', 'l', 'l', 'o', 'a']
三.函数
1.len(),max(),min():分别返回序列长度,最大值和最小值;
>>> a
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>> len(a)
10
>>> max(a)
'w'
>>> min(a)
'd'
2.list(seq):把序列转换成列表;
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
3.tuple(seq):把序列转换成元组;
>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
4.reserved(seq):把序列进行反向迭代,返回迭代器对象;
>>> reversed(list('abcd'))
<listreverseiterator object at 0xb779ea8c>
5.sorted(seq):返回排序后的列表;
>>> sorted(list('adcb'))
['a', 'b', 'c', 'd']
四.列表方法(对象.方法(参数))
1.append()方法:在列表末尾追加元素,lst.append(value);
>>> a = list('hello')
>>> a
['h', 'e', 'l', 'l', 'o']
>>> a.append('abcd')
>>> a
['h', 'e', 'l', 'l', 'o', 'abcd']
2.count()方法:返回某个元素出现的次数,lst.count(value);
>>> a
['h', 'e', 'l', 'l', 'o', 'abcd']
>>> a.count('h')
1
>>> a.count('l')
2
3.extend()方法:可以在列表末尾一次性追加另一个序列中的多个值,结果返回被扩展的序列,lst.extend(seq);
>>> a.extend(list('abcd'))
>>> a
['h', 'e', 'l', 'l', 'o', 'abcd', 'a', 'b', 'c', 'd']
4.index()方法:返回从列表中找出某个值第一个匹配项的索引位置,lst.index(value);
>>> a.index('l')
2
5.insert()方法:用于将对象插入到列表中,a.insert(index,value);
>>> a.insert(2,'a')
>>> a
['h', 'e', 'a', 'l', 'l', 'o', 'abcd', 'a', 'b', 'c', 'd']
6.pop()方法:会移除列表最后一个元素,并返回该元素(pop方法是唯一一个既能修改列表又能返回元素值的列表方法),lt.pop([index]);
>>> a
['h', 'e', 'l', 'l', 'o']
>>> a.pop()
'o'
>>> a
['h', 'e', 'l', 'l']
7.remove()方法:会移除列表中第一个匹配的值,lst.remove(value);
>>> a.remove('l')
>>> a
['h', 'e', 'l']
8.reserve()方法:将列表的元素反向存放,lst.reverse();
>>> a.reverse()
>>> a
['l', 'e', 'h']
9.sort()方法:对列表进行排序,lst.sort([cmp][,kye][,reverse]);
>>> a.sort()
>>> a
['e', 'h', 'l']