1. 序列类型
所谓序列,即成员有序排列,可通过下标访问。
- Python中的序列类型有:
- string、list、tuple、Unicode字符串、buffer对象和 xrange 对象;
- string 和 tuple 属于不可变的序列,而 list 是可变的;
- 所有序列都支持迭代;
- 序列通用的操作:
索引、长度、组合(序列相加)、重复(乘法)、切片、检查成员、遍历、最小值和最大值;
- 索引,通过下标访问单个元素;
- 切片,可获取指定范围内的元素;范围是左闭右开[start, end)的区间;
- 加法,两种相同的序列才可以进行+操作;
2. 线性结构
线性结构的特征:
- 可迭代 for … in
- 可 len() 获取长度
- 可通过下标索引访问
- 可进行切片操作
到目前,
字符串str、列表list、元组tuple 是线性结构。
3. 切片
切片,通过索引区间访问线性结构的一段数据,可表示为:
sequence[start:stop]
# or
sequence[start:stop:step]
表示序列的 [start, stop) 区间的子序列
还有一些特点:
- 支持负索引;
- 开始索引 start 为 0 时,可以省略;结束索引 stop 是末尾,也可以省略;
- 超过下界,从开头取;越过上界,就取到末尾;
- start 一定在 stop 的左边
- [:] 表示从头取到尾,即等同 cope()
- 步长step,可以是正,负整数,默认是 1;
【实例 1】切片的各种应用
'www.baidu.com'[4:9] # 'baidu'
'www.baidu.com'[:9] # 'www.baidu'
'www.baidu.com'[4:] # 'baidu.com'
'www.baidu.com'[:] # 'www.baidu.com'
'www.baidu.com'[:-4] # 'www.baidu'
'www.baidu.com'[4:-4] # 'baidu'
'www.baidu.com'[-20:-4] # 'www.baidu'