【问题标题】:Python Tuple SlicingPython 元组切片
【发布时间】:2014-02-03 09:58:37
【问题描述】:

鉴于 -1 回到元组中的第一项,并且切片的结束索引在该索引之前停止,为什么

x=(1,2,3,4,5)
x[0:-1]

产量

(1, 2, 3, 4)

而不是在第一个 5 之前的索引处停止?

谢谢

【问题讨论】:

标签: python tuples slice


【解决方案1】:

切片是这样工作的:

x[start : end : step]

在您的示例中,start = 0,因此它将从头开始,end = -1 这意味着结尾将是元组的最后一个元素(不是第一个)。您没有指定step,因此它将使用默认值1

这个link from Python docs 可能会有帮助,有一些切片的例子。

【讨论】:

  • x[start : end : step] 中的 end 不会出现在切片结果中。
【解决方案2】:

-1 不会回到元组中的第一项

x=(1,2,3,4,5)
x[-1]

产量

5

【讨论】:

    【解决方案3】:

    将切片点视为元素之间的会有所帮助

    x = (   1,   2,   3,   4,   5   )
          |    |    |    |    |    |
          0    1    2    3    4    5
         -5   -4   -3   -2   -1
    

    【讨论】:

    • 你也可以说结束索引是不包含的。
    【解决方案4】:

    任何 python 序列中的 -ve 值意味着:

    Val = len(sequence)+(-ve value)
    

    len(sequence)+(-ve value) 开始/停止,取决于我们指定的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 2016-02-23
      • 2020-08-31
      • 2020-12-11
      相关资源
      最近更新 更多