码迷,mamicode.com
首页 > 编程语言 > 详细

Python3基础10——切片

时间:2018-10-17 16:55:34      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:表达   pytho   str   就是   方向   end   否则   []   code   

切片的语法表达式为:[start_index : end_index : step]

start_index表示起始索引,end_index表示结束索引,step表示步长,步长不能为0,且默认值为1

切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引(也就是结束索引减1)的所有元素。

切片不会改变原对象,而是重新生成了一个新的对象

1 >>> C = [‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘]
2 >>> C[0:4:1]
3 [‘A‘, ‘B‘, ‘C‘, ‘D‘]

省略start_index,保留end_index,这样会从第一个元素开始,切到end_index - 1的元素为止

1 >>> C[:5]
2 [‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘]

保留start_index,但省略end_index,这样会从起始索引开始,切到最后一个元素为止:

1 >>> C[2:]
2 [‘C‘, ‘D‘, ‘E‘, ‘F‘]

省略start_index、end_index和step,这样就表示就表示切片整个序列,也就是复制出了一个新的序列:

1 >>> C[:]
2 [‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘]

省略start_index、end_index,但保留step,表示对整个序列,按照步长整除的规则取值:

1 >>> C[::2]
2 [‘A‘, ‘C‘, ‘E‘]

此时,如果我们将步长设为-1,那么就可以很方便的得到一个反序的序列了:

1 >>> C[::-1]
2 [‘F‘, ‘E‘, ‘D‘, ‘C‘, ‘B‘, ‘A‘]

只要起始值start_index到结束值end_index在step方向中间有值,就有返回值:

 1 C = [‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘]
 2 # 下面这四种表达式是等价的:
 3 >>> C[0:3]
 4 [‘A‘, ‘B‘, ‘C‘]
 5 >>> C[0:-3]
 6 [‘A‘, ‘B‘, ‘C‘]
 7 >>> C[-6:3]
 8 [‘A‘, ‘B‘, ‘C‘]
 9 >>> C[-6:-3]
10 [‘A‘, ‘B‘, ‘C‘]

解释:c[0:-3]等价于c[A:D:1],c[-6:3]等价于c[0:3:1]

切片时,一定要保证start_index到end_index的方向与步长step的方向同向,否则会切出空的序列:

1 >>> C[0:3:-1]
2 []
3 >>> C[3:0:1]
4 []



Python3基础10——切片

标签:表达   pytho   str   就是   方向   end   否则   []   code   

原文地址:https://www.cnblogs.com/monica711/p/9804700.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!