python序列切片操作

Nov 15, 2017 09:54 · 105 words · 1 minute read python

Life is short, Use Python.

序列切片操作详解

切片操作的方法是:consequence[start_index: end_index: step]

  • start_index:表示是第一个元素对象,正索引位置默认为0;负索引位置默认为 -len(consequence)
  • end_index:表示是最后一个元素对象,正索引位置默认为 len(consequence)-1;负索引位置默认为 -1。
  • step:表示取值的步长,默认为1,步长值不能为0。

  • 对于序列结构数据来说,索引和步长都具有正负两个值,分别表示左右两个方向取值。索引的正方向从左往右取值,起始位置为0;负方向从右往左取值,起始位置为-1。因此任意一个序列结构数据的索引范围为 -len(consequence) 到 len(consequence)-1 范围内的连续整数。

  • 在切片运算中,步长为正,表示从左至右,按照索引值与起始位置索引之差可以被步长整除的规律取值;当步长为负,则表示从右至左,按照按照索引值与起始位置索引之差可以被步长整除的规律取值。

索引详解

  • 索引值
序列 a b c d
正向索引值 0 1 2 3
反向索引值 -4 -3 -2 -1
  • 假设x是[start:end]中的一个值,那么有:start<=x<end.即包含start不包括end。

    a = [1,2,3,4,5,6,7,8,9,10]
    print a[2:3] #输出3
    
    print a[-3:-2] # 输出8 
    

示例

示例序列a

a = [1,2,3,4,5,6,7,8,9,10]

倒序输出序列

>>> a[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

如果开始索引值或者结束索引值没有指定,则分别以字符串的第一个和最后一个作为默认值。

print a[:2] #等价于print a[0:2]
[1, 2]

从第二个开始输出到第五个截止

>>> a[2:5]
[3, 4, 5.6]

从倒数第三个开始输出到倒数第一个截止

>>> a[-3:-1]
[8, 9]
>>> a[-3:]
[8, 9, 10]

前6个数,每两个取一个:

>>> a[:6] #前6个数
[1, 2, 3, 4, 5, 6]
>>> a[:6:2]
[1, 3, 5]
tweet Share