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)