想知道何时以及为什么它产生空字符串



这是我的一段代码,我想知道为什么它产生一个空字符串

xs = "0123456789"
x = xs[4:-5:-1]
print(x)

负步骤并不只是简单地逆转"正步骤"的结果。片。它影响切片"终止"的条件。

xs[x:y:-1]xs[k]组成,其中x >= k > y。在这种情况下,不存在满足k > yk,因为(将负指标调整为对应的正数值后)x >= y为假。因此,没有使用字符串的任何元素来构建结果。


xs[x:-y] == xs[x:len(xs) - y], so

xs[4:-5:-1] == xs[4:len(xs) - 5:-1]
== xs[4:10-5:-1]
== xs[4:5:-1]

没有k使得4 >= k > 5.

根据python切片语法:

array[start:stop:step] # first element is start index, second is stop index and last is the step.

因此,在您的示例中,xs[4:-5:-1]从索引4开始,以索引-5结束,并且步长为-1。

如果您使用xs[4::-1],输出将是'43210',但由于-1步无法到达-5,因此您得到一个空数组。

最新更新