Python数据结构之切片
1、线性结构:
线性结构就是有序序列,可以:
-
-
- 可迭代for ... in
- len() 可以获取长度
- 通过下标可以访问
- 可以切片
-
线性结构有:
列表,元组,字符串,bytes,bytearray。。。。。(后续添加)
2、切片:
通过索引区间访问线性结构的一段数据
sequence[ start: stop ] 表示返回 [ start,stop) 区间的子序列
支持负索引
start 为0 可以省略
******注: [ : ] 表示从头到尾,全部袁旭被去除,等效copy()方法
但是注意的是,[ : ]是切片,新的片段,所以占用内存地址,而浅复制则不然。
1 In [266]: print('www.magedu.com'[4:10]) 2 magedu 3 4 In [267]: print('www.magedu.com'[5:-1]) 5 agedu.co 6 7 In [268]: print('www.magedu.com'[-10:-1]) 8 magedu.co 9 10 In [269]: print('www.magedu.com'[-1:-10]) 11 12 13 In [270]: print('www.magedu.com'[:]) 14 www.magedu.com 15 16 In [271]: print('www.magedu.com'[4:]) 17 magedu.com 18 19 In [272]: print('www.magedu.com'[:-1]) 20 www.magedu.co 21 22 In [273]: print('www.magedu.com'[:100]) 23 www.magedu.com 24 25 In [274]: print('www.magedu.com'[-40:10]) 26 www.magedu 27 28 In [275]: 29 30 In [275]: print('www.magedu.com'[-4:10]) 31 32 33 In [276]: print('www.magedu.com'[-10:10]) 34 magedu 35 36 In [277]: print('www.magedu.com'[-10:-4]) 37 magedu
步长切片:
[start:stop:step]
step:默认是1
stepy 要和start:stop同向,否则返回空序列
1 In [2]: print('www.magedu.com'[4:10:2]) 2 mgd 3 4 In [3]: print('www.magedu.com'[4:10:-2]) 5 6 7 In [4]: print('www.magedu.com'[14:10:-2]) 8 mc 9 10 In [5]: print('www.magedu.com'[-10:-4:2]) 11 mgd 12 13 In [6]: print('www.magedu.com'[-10:-4:-2])
总结:
如果是两项选项,没有步长,只要开始的数值对应的 序列的元素 是结束的数字对应的元素的左侧,就可以。
如果有步长,看成一个横坐标,步长的方向,要与 从几到几的方向一致。
为什么要坚持,想一想当初!