1 内建的序列:列表,元祖,字符串,Unicode字符串,buffer对象和xrange对象
列表vs元组:
列表可以改变,元组不可以。
使用元组的理由:通常是技术性的。与Python内部的运作方式有关。这也是内建函数可能返回元组的原因
必须使用元组的情况:使用元组作为字典的键,在这种情况下,因为健不可修改,所以不能使用列表
2 容器container 基本上包含了其他对象的任意对象。包括:
序列(列表与元组)每个元素都有自己的编号
映射(字典)每个元素都有自己的名字
此外,还有集合
<恩,插播,2012.8.5 21:26 林丹赢了。excellent!>
3 通用序列操作
3.1 索引
前面从0开始,后面从-1开始数
3.2分片
第一个空从头开始,第二个空到结尾
第三个数表示步长,即间隔
3.3 序列相加
要求必须是相同类型的序列才能进行连接操作
3.4乘法
None是一个内建值,确切的含义是“这里什么也没有”,用于初始化
3.5 成员资格 in
3.6 长度len,最大值max,最小值min
4 列表
4.1 list 将序列分解,与之相对的是‘’.jion(somelist)
4.2del语句删除元素 del x[2]
4.3分片赋值实际上是一种替换
5 列表方法
5.1append 在列表尾部追加新的对象
5.2count 统计某个元素在列表中出现的次数
5.3extend vs 连接
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [1,2,3]
>>> a+b
[1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3]
>>> c.extend(b)
>>> c
[1, 2, 3, 4, 5, 6]
而a = a+b 的操作要比extend的效率低
上面的也可以用分片赋值实现
>>> a = [1,2,3]
>>> b
[4, 5, 6]
>>> a[len(a):] = b
>>> a
[1, 2, 3, 4, 5, 6]
但是可读性比extend低
5.4index返回某个值第一个匹配的索引位置
5.5insert 插入列表
5.6pop默认最后一个,pop(0)第一个 ——唯一一个可以修改列表的同时返回元素值(None除外)的列表方法
对于:LIFO(栈) 用append(x)入栈,用pop()出栈
FIFO(队列) 用insert(0,x)入队列,用pop()出队列 【队首是序列值大的】;或者:用append(x)入队列,用pop(0)出队列【队首是序列值小的】
5.7remove 移除列表中某个值的第一个匹配项
5.8reverse 将元素反向存放
>>> x = [1,2,3]
>>> reversed(x)
<listreverseiterator object at 0x01733A10>
>>> list(reversed(x))
[3, 2, 1]
5.9sort 原位置排序
要得到一个排好序的副本和保持原序列不变
方法一:
>>> x = [3,2,4]
>>> y = x[:] # y = x 是不对的,因为这样的话,x和y将指向同一个列表
>>> y.sort()
>>> x
[3, 2, 4]
>>> y
[2, 3, 4]
方法二:
>>> x = [3,2,4]
>>> y = sorted(x)
>>> x
[3, 2, 4]
>>> y
[2, 3, 4]
>>>
6高级排序
参数cmp
>>> cmp(1,4)
-1
>>> cmp(2,1)
1
>>> cmp(3,3)
0
>>> a = [4,2,6,4]
>>> a.sort(cmp)
>>> a
[2, 4, 4, 6]
参数key
>>>
>>> b = ['sdf','sdd','sssss','d','er']
>>> b.sort(key = len)
>>> b
['d', 'er', 'sdf', 'sdd', 'sssss']
>>>
参数reverse
>>> x = [3,65,1,6,566,23,666]
>>> x.sort(reverse = True)
>>> x
[666, 566, 65, 23, 6, 3, 1]
>>> x.sort(reverse = False)
>>> x
[1, 3, 6, 23, 65, 566, 666]
7 list将序列转换成列表,tuple将序列转换为元组
>>> list([1,2,3])
[1, 2, 3]
>>> list('abc')
['a', 'b', 'c']
>>> list((2,3,4))
[2, 3, 4]
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('abc')
('a', 'b', 'c')
>>> tuple((2,3,4))
(2, 3, 4)