【问题标题】:Advantages for Python Slice Syntax [duplicate]Python 切片语法的优点 [重复]
【发布时间】:2014-06-13 10:53:42
【问题描述】:

使 Python 切片语法中的结束索引产生从“start”到“end-1”的字符有什么好处?

也就是说,我知道如果 a = [2,3,4],则 a[0:2] 产生 [2,3],a[1:3] 产生 [3,4]。对于 a[0:2] 案例,我看到了“前 2 个字符”的直观含义,但是对于没有 0 作为起始索引的其他案例,我看不出它是多么清楚。将语法从“开始”改为“结束”似乎更直观。

或者这种语法有我没有看到的优点吗?

【问题讨论】:

  • 这不是正确的副本(虽然我认为这是 something 的副本)。
  • 以下属性成立,具有一定的优雅性:xs == xs[:i] + xs[i:]; len(xs[i:j]) == j - i; xs == xs[:i] + xs[i:j] + xs[j:].

标签: python string slice


【解决方案1】:

Because Guido made it that way.

使用基于 0 的索引、半开区间和合适的默认值(正如 Python 最终拥有的那样),它们很漂亮:a[:n] 和 a[i:i+n];前者对于 a[0:n] 来说很长。

但是 index:length 约定如何适用于其他用例? TBH 这是我记忆模糊的地方,但我想我被半开音程的优雅所左右。尤其是当两个切片相邻时,第一个切片的结束索引是第二个切片的开始索引的不变量实在是太漂亮了,不容忽视。例如,假设您在索引 i 和 j 处将字符串分成三个部分——这些部分将是 a[:i]、a[i:j] 和 a[j:]。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 2013-04-28
    • 2015-05-09
    • 2018-09-28
    • 1970-01-01
    • 2020-03-27
    • 2019-04-27
    • 1970-01-01
    相关资源
    最近更新 更多