为什么 python 切片语法不从负索引环绕到正索引?

2024-01-13

我注意到,鉴于l = [1,2,3], that l[-1:]回报[3]正如预期的那样,但是l[-1:0]回报[],与我的预期非常不同。 然后我尝试了[-1:1],我期望返回[3,1],但它也会返回[].

切片语法不从负索引环绕到正索引(反之亦然)是否有充分的理由?

看起来它非常有用并且实现起来非常简单,但也许我遗漏了一些东西。


切片有一个非常简单的定义:你从start通过跳跃step只要你在下面stop. If start or step为负数,先加上数组的长度。

有一次你的建议导致令人厌烦的行为是:

x[10:-10]

If x[-10]是在之后x[10],你想要的切片来自x[10] to x[len(x)-10-1]。如果你有环绕,你就会有切片x[10:] + x[:-10],这大多是无用的。

环绕行为很容易模仿(例如x[m:] + x[:n])与当前的行为,但是当前的、更有用的行为很难用环绕来模拟。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 python 切片语法不从负索引环绕到正索引? 的相关文章

随机推荐