代码之家  ›  专栏  ›  技术社区  ›  vaanchit kaul

python中的切片列表

  •  0
  • vaanchit kaul  · 技术社区  · 7 年前

    关于切片操作到底是如何在列表上工作的,有很多困惑。

    • 为什么[1,2,3,4][::-1]返回其反面?

    • 为什么[1,2,3,4][1:-4]返回[]和[1,2,3,4][1:-4:-1]返回[2]?

    使用负指数时会出现主要问题。

    如果有人能告诉我内置模块中slice的确切定义,那就太好了。

    编辑:为什么[1,2,3][::-1]和[1,2,3][0:3:-1]具有不同的返回值

    1 回复  |  直到 7 年前
        1
  •  1
  •   Setop    4 年前

    列表['A',B',C',D']

    指数 从0到大小1。

    负索引表示向后浏览列表:

           negative index   |   positive index
    -5   -4   -3   -2   -1  |  0    1    2    3    4
         'A'  'B', 'C', 'D',|['A', 'B', 'C', 'D']
    

    索引(>);4或<-5投掷索引器。

    切片 遵循以下模式:列表[从:到:步骤]

    • 步骤(默认为1)指示在切片中保留哪些索引 它的符号给出了切片的方向
      • 正,从左到右,
      • 从右向左为负值
    • 从索引开始切片的位置,包括
      • 步长为正时默认为0,
      • 步骤为负时默认为-1
    • 索引结束切片的位置,独占
      • 步长为正值时,默认为size-1,
      • (尺寸-1)阶跃为负时

    示例:

    ['A','B','C','D'][::-1]表示从右到左,从-1到-(大小-1)=>['D','C','B','A']

    ['A'、'B'、'C'、'D'][1:-4]表示从第二个元素到第一个元素,步骤为1=>没有什么

    ['A'、'B'、'C'、'D'][1:-4:-1]表示从第二个元素到第一个元素以负一的步长排除,只剩下第二个元素=>[2]

    当然,最好的方法是在使用前在样品上切一片。