Python范围切片和索引行为

And*_*rew -1 python slice

在Python中,我想知道为什么切片按照他们的方式工作.为什么Guido van Rossum定义a[start:end]包括a[start] 包括a[end],或者在标题中,为什么a[0:1]只包含第一个元素而不包含前两个元素?

这似乎是MATLAB索引行为的一个退步.

编辑:我问这个问题的原因是它a[0:0]是空的混乱.但我没有设计一种流行的语言,所以我知道什么.

Nig*_*nel 5

引述吉多·范罗苏姆自己:

[...]我被半开放间隔的优雅所左右.特别是不变量,当两个切片相邻时,第一个切片的结束索引是第二个切片的起始索引太漂亮而不能忽略.例如,假设您在索引i和j处将字符串拆分为三个部分 - 部分将是[:i],a [i:j]和[j:].