代码之家  ›  专栏  ›  技术社区  ›  user697911

有人能解释一下这个切片是怎么工作的吗[[副本]

  •  0
  • user697911  · 技术社区  · 7 年前
    x=[1,2,3,4]
    
    In [91]: x[:1]
    Out[91]: [1]
    

    x[:n]最多选择“n”(独占)列?

    In [93]: x[:-1]
    Out[93]: [1, 2, 3]
    

    你怎么知道的 x[:-1] 工作?

    In [94]: x[::-1]
    Out[94]: [4, 3, 2, 1]
    

    x[::-1] ? 有两个 :: 在这里。

    3 回复  |  直到 7 年前
        1
  •  1
  •   DarkElf73    7 年前

    x[start:stop:step]
    如果没有指定这三个值中的任何一个,它们将采用默认值, start = 0, stop = just after last element, step = 1
    根据字符串索引,x[1]是第二个索引,x[-1]是最后一个索引。

    1. 因此,x[:1]=>x[0:1:1]表示从0到1的所有,不包括1 间隔为1。
    2. 类似地,x[:-1]=>x[0:-1:1]这是 第1步
    3. 最后,x[::-1]从头到尾遍历整个字符串 但它使用了-1的步长,所以它的工作方式有点特殊 给你x[-1:开始前:-1]即从结束到开始不是 包括开始前的那一个(那一个没有索引)
        2
  •  1
  •   U13-Forward    7 年前
    • x[:1] 1 (基本上只得到第0个元素)

    • x[:-1] 获取直到最后一个值的所有值

    • x[::-1]

        3
  •  1
  •   avdotion    7 年前

    你可以想象蟒蛇切片 x[start:end] [start, end) 0 len(x) .

    x = [1, 2, 3, 4]

    • x[:1] x[0:1] 而且它是 [0]
    • x[:-1] x[0:len(x)-1] [1, 2, 3]
    • x[::-1] 是一个倒转的x [4, 3, 2, 1]