home1.gif

1. 序列类型


所谓序列,即成员有序排列,可通过下标访问。

  • Python中的序列类型有:
    • string、list、tuple、Unicode字符串、buffer对象和 xrange 对象;
    • string 和 tuple 属于不可变的序列,而 list 是可变的;
  • 所有序列都支持迭代
  • 序列通用的操作:

索引、长度、组合(序列相加)、重复(乘法)、切片、检查成员、遍历、最小值和最大值;

  • 索引,通过下标访问单个元素;
  • 切片,可获取指定范围内的元素;范围是左闭右开[start, end)的区间;
  • 加法,两种相同的序列才可以进行+操作;

2. 线性结构


线性结构的特征:

  • 可迭代 for … in
  • 可 len() 获取长度
  • 可通过下标索引访问
  • 可进行切片操作

到目前,

字符串str、列表list、元组tuple 是线性结构。

3. 切片


切片,通过索引区间访问线性结构的一段数据,可表示为:

  1. sequence[start:stop]
  2. # or
  3. sequence[start:stop:step]

表示序列的 [start, stop) 区间的子序列

还有一些特点:

  1. 支持负索引;
  2. 开始索引 start 为 0 时,可以省略;结束索引 stop 是末尾,也可以省略;
  3. 超过下界,从开头取;越过上界,就取到末尾;
  4. start 一定在 stop 的左边
  5. [:] 表示从头取到尾,即等同 cope()
  6. 步长step,可以是正,负整数,默认是 1;

【实例 1】切片的各种应用

  1. 'www.baidu.com'[4:9] # 'baidu'
  2. 'www.baidu.com'[:9] # 'www.baidu'
  3. 'www.baidu.com'[4:] # 'baidu.com'
  4. 'www.baidu.com'[:] # 'www.baidu.com'
  5. 'www.baidu.com'[:-4] # 'www.baidu'
  6. 'www.baidu.com'[4:-4] # 'baidu'
  7. 'www.baidu.com'[-20:-4] # 'www.baidu'

end1.gif