python中切片的理解

Posted jiyanjiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中切片的理解相关的知识,希望对你有一定的参考价值。

Python中什么可以切片

  • l  Python中符合序列的有序序列都支持切片(slice)
  • l  如:列表,字符,元祖

Python中切片的格式

  • l  格式:[start : end : step]
  • l  Start:起始索引,从0开始,-1表示结束
  • l  End:结束索引
  • l  Step:步长
  • l  end-start=正数时,从左向右取值,=负数时反向取值
  • l  注意:切片结果不包含结束索引,即不包含最后一位,-1代表最后一个位置索引

常用的几种方式:

  • l  [:] 如:list2=list1[:] 全部截取
  • l  [0:1:n] 如:list1[0:3;1] 从0开始到3每次增加1截取,不包含索引结束位置
  • l  [0:-1:1]:从0开始到结束,每次增加1,截取不包含索引结束位置
  • l  [:3]:默认从起始位置索引,每次增加1截取,结束位置索引为3
  • l  [3:0:-1]反向取值,每次增加1截取,不包含索引结束位置

直接看例子会更直观一些

  • l   
    list1 = [ji,yan,jiao]
    list2 = list1[:]
    print(list1[:] 打印出的结果为:,list2)
    ‘‘‘
    打印结果:
    list1[:] 打印出的结果为: [‘ji‘, ‘yan‘, ‘jiao‘]
    ‘‘‘
    list1 = [ji,yan,jiao]
    list3 = list1[0:1:1]
    list3_1 = list1[0:2:1]
    list3_2 = list1[0:2:2]
    list3_2_1 = list1[0:3:2]
    list3_3 = list1[0:-1:1]
    print(list1[0:1:1] 打印的结果为:,list3)
    print(list1[0:2:1] 打印的结果为:,list3_1)
    print(list1[0:2:2] 打印的结果为:,list3_2)
    print(list1[0:3:2] 打印的结果为:,list3_2_1)
    print(list1[0:-1:1] 打印的结果为:,list3_3)
    ‘‘‘
    打印结果:
    list1[0:1:1] 打印的结果为: [‘ji‘]
    list1[0:2:1] 打印的结果为: [‘ji‘, ‘yan‘]
    list1[0:2:2] 打印的结果为: [‘ji‘]
    list1[0:3:2] 打印的结果为: [‘ji‘, ‘jiao‘]
    list1[0:-1:1] 打印的结果为: [‘ji‘, ‘yan‘]
    ‘‘‘
    
    list1 = [ji,yan,jiao]
    list4 = list1[:2]
    list4_1 = list1[:3]
    print( list1[:2]打印结果为:,list4)
    print( list1[:3]打印结果为:,list4_1)
    ‘‘‘
    打印结果:
    list1[:2]打印结果为: [‘ji‘, ‘yan‘]
    list1[:3]打印结果为: [‘ji‘, ‘yan‘, ‘jiao‘]
    ‘‘‘
    list1 = [ji,yan,jiao]
    list5 = list1[2:0:-1]
    list5_1 = list1[2:0:-2]
    print( list1[2:0:-1]打印结果为:,list5)
    print( list1[2:0:-2]打印结果为:,list5_1)
    ‘‘‘
    打印结果:
     list1[2:0:-1]打印结果为: [‘jiao‘, ‘yan‘]
     list1[2:0:-2]打印结果为: [‘jiao‘]
    ‘‘‘

     

以上是关于python中切片的理解的主要内容,如果未能解决你的问题,请参考以下文章

《Python学习之路 -- Python基础之切片》

python中切片的理解

Python 切片彻底理解

无法理解 for 循环的变量切片

你知道的Go切片扩容机制可能是错的

精密解析Python切片的用法