• 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]
                >>> 
                            
    
                
                
  • 相关阅读:
    抽象与接口的综合练习
    java构造函数能否被继承,为什么?
    题解 【USACO 4.2.1】草地排水
    题解 【NOI2010】超级钢琴
    题解 [USACO Mar08] 奶牛跑步
    题解 【NOIP2016】魔法阵
    题解 对称二叉树
    题解 【NOIP2014】解方程
    题解 【NOIP2010】关押罪犯
    题解 贪吃蛇
  • 原文地址:https://www.cnblogs.com/LouisZJ/p/5674517.html
Copyright © 2020-2023  润新知