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
test

  步长切片:

    [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])
test-步长

   总结:

    如果是两项选项,没有步长,只要开始的数值对应的 序列的元素 是结束的数字对应的元素的左侧,就可以。

    如果有步长,看成一个横坐标,步长的方向,要与 从几到几的方向一致。

为什么要坚持,想一想当初!
原文地址:https://www.cnblogs.com/JerryZao/p/9460024.html