第三章 - Python 内置数据结构
线性结构
线性结构
- 可迭代 for … in
- len()可以获取长度
- 通过下标可以访问
- 可以切片
学过的线性结构
- 列表、元组、字符串、bytes、bytearray
切片
- 切片
- 通过索引区间访问线性结构的一段数据
- sequence[start:stop] 表示返回[start, stop)区间的子序列
- 支持负索引
- start为0,可以省略
- stop为末尾,可以省略
- 超过上界(右边界),就取到末尾;超过下界(左边界),取到开头
- start一定要在stop的左边
- [:] 表示从头至尾,全部元素被取出,等效于copy()方法
切片
切片举例
‘www.github.com'[4:10]
‘www.github.com'[:10]
‘www.github.com'[4:]
‘www.github.com'[:]
‘www.github.com'[:-1]
‘www.github.com'[4:-4]
‘www.github.com'[4:50]
b’www.github.com'[-40:10]
bytearray(b’www.github.com')[-4:10]
tuple(‘www.github.com')[-10:10]
list(‘www.github.com')[-10:-4]步长切片
- [start:stop:step]
- step为步长,可以正、负整数,默认是1
- step要和start:stop同向,否则返回空序列
‘www.github.com'[4:10:2]
list(‘www.github.com')[4:10:-2]
tuple(‘www.github.com')[-10:-4:2]
b’www.github.com'[-4:-10:2]
bytearray(b’www.github.com')[-4:-10:-2]
切片可以赋值
arr = [ ‘C’, ‘python’, ‘js’, ‘css’, ‘html’, ‘node’]
arr[2:4] = [‘pc’,’wd’]
arr # [‘C’, ‘python’, ‘pc’, ‘wd’, ‘html’, ‘node’]切片可以插入和删除元素
arr = [‘C’, ‘python’, ‘js’, ‘css’, ‘html’, ‘node’]
arr[1:1] = [‘pc’,’wd’] # [1:1]表示在1开始查找,但没有查找,所以是在索引1添加元素
arr # [‘C’, ‘pc’, ‘wd’, ‘python’, ‘js’, ‘css’, ‘html’, ‘node’]
arr[2:3] = [] # 删除索引2的元素
arr # [‘C’, ‘pc’, ‘python’, ‘js’, ‘css’, ‘html’, ‘node’]