sequence 序列
sequence(序列) 是一组有顺序的元素的集合
(严格的说,是物件的集合,但鉴于我们还没有引入 “物件” 概念,暂时说元素)
 
序列可以包含一个或多个元素,也可以没有任何元素。
我们之前所说的基本资料型别,都可以作为序列的元素。元素还可以是另一个序列,以及我们以后要介绍的其他物件。
 
序列有两种:tuple(定值表; 也有翻译为元组)和 list (表)
>>>s1 = (2, 1.3, ‘love’, 5.6, 9, 12, False)         # s1 是一个 tuple
>>>s2 = [True, 5, ‘smile’]                          # s2 是一个 list
>>>print(s1,type(s1))
>>>print(s2,type(s2))
tuple 和 list 的主要区别在于,一旦建立,tuple 的各个元素不可再变更,而 list 的各个元素可以再变更。
一个序列作为另一个序列的元素
>>>s3 = [1,[3,4,5]]
空序列
>>>s4 = []
 
元素的引用
序列元素的下标从 0 开始:
>>>print(s1[0])
>>>print(s2[2])
>>>print(s3[1][2])
由于 list 的元素可变更,你可以对 list 的某个元素赋值:
>>>s2[1] = 3.0
>>>print(s2)
如果你对 tuple 做这样的操作,会得到错误提示。
所以,可以看到,序列的引用通过 s[] 实现, int 为下标
 
其他引用方式
范围引用: 基本样式 [下限: 上限: 步长]
>>>print(s1[:5])             # 从开始到下标 4(下标 5 的元素 不包括在内)
>>>print(s1[2:])             # 从下标 2 到最后
>>>print(s1[0:5:2])          # 从下标 0 到下标 4 (下标 5 不包括在内),每隔 2 取一个元素(下标为 0,2,4 的元素)
>>>print(s1[2:0:-1])         # 从下标 2 到下标 1
从上面可以看到,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内。
尾部元素引用
>>>print(s1[-1])             # 序列最后一个元素
>>>print(s1[-3])             # 序列倒数第三个元素
同样,如果 s1[0:-1], 那么最后一个元素不会被引用(再一次,不包括上限元素本身)
 
字串是元组
字串是一种特殊的元组,因此可以执行元组的相关操作。
>>>str = ‘abcdef’
>>>print(str[2:4])
 
总结
tuple 元素不可变,list 元素可变
序列的引用 s[2], s[1:8:2]
字串是一种 tuple
 
作者:Vamei 出处:http://www.cnblogs.com/vamei