2016.07.09-10 切片操作

切片操作:
    对有序数列使用下标操作进行区域切割。
    最常见的的切片操作,以list为例(其他的有序数列,例如tuple和str的切片操作都跟list相同):
        lst[start:end:step]
        start:起始索引,end:结束索引,step步长
        切片操作的取值区域,包含起始索引的元素,不包含结束索引的元素
        正数索引,从0开始,从左往右计数
        负数索引,从-1开始,从右往左计数
        实例:如果step(步长)为默认值(1)或者其他正整数时切片顺序是从左往右,start(起始索引)必须在end(结束索引)前面,否则会得到一个空列表。
            >>> lst
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            >>> lst[0:8]
            [0, 1, 2, 3, 4, 5, 6, 7]
            
            >>> lst[0:-2] 
            [0, 1, 2, 3, 4, 5, 6, 7]

            >>> lst[-8:6]
            [2, 3, 4, 5]

            >>> lst[-2:3]
            []

            >>> lst[7:2]
            []

            >>> lst[-2:-5]
            []


        实例:如果step(步长)为负数时,切片顺序是从右往左,start(起始索引)必须在end(结束索引)后面,否则会得到一个空列表。
              返回的结果相对于原列表是逆序的
            >>> lst
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            >>> lst[7:2:-1]
            [7, 6, 5, 4, 3]

            >>> lst[-1::-1] 
            [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

            >>> lst[-1:-5:-1]
            [9, 8, 7, 6]
            
            >>> lst[-1:-7:2] 
            []
            >>>
        
        实例:step为默认(1)或-1时,切片计数为正常的顺序取值,当大于1,或者小于-1时,则根据step跳跃取值,步长是2或-2时是两位元素中取第一位,第二位丢弃,以此类推。
            >>> lst[::2]
            [0, 2, 4, 6, 8]

            >>> lst[::3]
            [0, 3, 6, 9]
            
            >>> lst[-1::-2]
            [9, 7, 5, 3, 1]

            >>> lst[-1::-3]
            [9, 6, 3, 0]

            
        实例:当start或end超出lst的索引范围的情况,start < 索引范围的第一位,end >索引范围的最后一位,start取值为索引0,end取值为len(lst)
            >>> lst[-100:5]
            [0, 1, 2, 3, 4]

            >>> lst[2:100] 
            [2, 3, 4, 5, 6, 7, 8, 9]

            >>> lst[-100:100]        
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

        实例:start为0可以省略,end为list的长度时可以省略,等效于lst.copy()方法
            >>> lst
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            >>> lst[:]
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            >>> lst[::-1]
            [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
            >>> 
                        

            
            
原文地址:https://www.cnblogs.com/LouisZJ/p/5674517.html