python - 如何理解负 k 索引的 python 切片?

标签 python

谁能解释为什么 a[:5:-1] != a[:5][::-1]

>>> a = range(10)
>>> a[:5][::-1]
[4, 3, 2, 1, 0]
>>> a[:5:-1]
[9, 8, 7, 6]

最佳答案

切片的一般语法是

a[start:stop:step]

您可以省略 startstopstep 这三个值中的任何一个。如果您省略 step,它始终默认为 1。相比之下,startstop 的默认值取决于 step 的符号:如果 step 为正,start 默认为 0stop 默认为 len(a)。如果 step 为负数,则 start 默认为 len(a) - 1stop 为“列表的开头” ".

所以a[:5:-1]和这里的a[9:5:-1]是一样的,

a[:5][::-1]a[0:5][4::-1] 相同。

(请注意,如果 step 为负数,则不可能显式地为 stop 指定默认值。停止值不包含在内,因此 0 将不同于“列表的开头”。使用 None 将等同于不提供任何值。)

关于python - 如何理解负 k 索引的 python 切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913011/

相关文章:

python - 如何使用箱线图绘制relplot,然后仅绘制seaborn中指定的频率

python - 在 python 中作为非特权用户从 Web 服务器 worker 登录的设计模式

python - 如何更改字典中的变量

python - 将 Python 与一组不规则点 X、Y、Z 一起使用,以创建一个规则网格,其中每个像素都是该点的最小值

Python 正则表达式lookbehind 交换组

python - pandas DateOffset 函数

python - 从 `bokeh` 函数外部设置 python `figure()` 绘图的标题

python - 从我的本地开发机器正确指定 git pull 的路径

python - Selenium :WAITING元素可点击不工作

python - 为什么else语句总是运行?