您的位置:首页 > 编程语言 > Python开发

Python 的切片操作以及 利用步长对序列进行倒序取值

2016-09-09 15:42 633 查看
切片操作:

对于具有序列结构的数据来说,切片操作的方法是:consequence[start_index: end_index: step]。

start_index:表示是第一个元素对象,正索引位置默认为0;负索引位置默认为 -len(consequence)

end_index:表示是最后一个元素对象,正索引位置默认为 len(consequence)-1;负索引位置默认为 -1。

step:表示取值的步长,默认为1,步长值不能为0。

几种常见的表达:

con[start_index: ]:缺省end_index,表示从start_index开始到序列中最后一个对象。

con[: end_index]:缺省start_index,表示从序列中第一个对象到end_index-1之间的片段。

con[:]:缺省start_index和end_index,表示从第一个对象到最后一个对象的完整片段。

con[::step]:缺省start_index和end_index,表示对整个序列按照索引可以被step整除的规则取值。

在使用单索引对序列寻址取值时,你所输入的索引值必须是处于 -len(consequence) 到 len(consequence)-1 之间的值,否则会报错提示索引值超出范围。如:

>>> a=[1,2,3,4,5,6,7] 

>>> a[len(a)-1] 



>>> a[-len(a)] 



>>> a[len(a)] 

  

Traceback (most recent call last): 

  File "<pyshell#98>", line 1, in <module> 

    a[len(a)] 

IndexError: list index out of range 

>>> a[-len(a)-1] 

  

Traceback (most recent call last): 

  File "<pyshell#99>", line 1, in <module> 

    a[-len(a)-1] 

IndexError: list index out of range 

利用步长对序列进行倒序取值:

>>> a=[1,2,3,4,5,6,7] 
>>> b=(1,2,3,4,5,6,7) 
>>> c='Let me show you a little thing' 
>>> a[::-1] 
[7, 6, 5, 4, 3, 2, 1] 
>>> b[::-1] 
(7, 6, 5, 4, 3, 2, 1) 
>>> c[::-1] 
'gniht elttil a uoy wohs em teL' 
>>> a 
[1, 2, 3, 4, 5, 6, 7] 
>>> b 
(1, 2, 3, 4, 5, 6, 7) 
>>> c 
'Let me show you a little thing' 
  
>>> a.reverse() 
>>> a 
[7, 6, 5, 4, 3, 2, 1] 

相对reverse而言,切片的方法不会改变列表的结构,所以这是在实际应用中比较有用的一个技巧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: