这是我的一段代码,我想知道为什么它产生一个空字符串
xs = "0123456789"
x = xs[4:-5:-1]
print(x)
负步骤并不只是简单地逆转"正步骤"的结果。片。它影响切片"终止"的条件。
xs[x:y:-1]
由xs[k]
组成,其中x >= k > y
。在这种情况下,不存在满足k > y
的k
,因为(将负指标调整为对应的正数值后)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,因此您得到一个空数组。