我正在尝试理解切片。这个切片是如何工作的?
>>> a=['c','b']
>>> a
['c', 'b']
>>> a[-3:-1:3]
['c']
我已经阅读了所有帖子,但找不到答案。据我了解,切片应该是 [start:stop:step]
。但如果我从 -3 开始,一步之后我就处于 0。
这到底是如何运作的?打印哪些索引?范围内的那些?
最佳答案
首先注意a[-3:-1]
是['c']
。
a[-3:-1]
是一个切片,包含 [a[-3], a[-2]]
中的所有元素(如果存在)。
>>> a=['c','b']
>>> a[-3:-1]
['c']
a[-3]
不存在(它会引发 IndexError),但 a[-2]
是 'c'
:
>>> a[-2]
'c'
这是有道理的,因为 a[-1]
是最后一个元素 'b'
。因此,a[-2]
是倒数第二个元素。
最后,
>>> a[-3:-1:3]
['c']
因为这是 a[-3:-1]
中每隔三个元素。由于 a[-3:-1]
中只有一个元素,因此每三个元素都与第一个也是唯一的元素相同。
管理切片的确切规则由Notes 3 and 5 of the docs section entitled "Common Sequence Operations"给出。 .
关于python - 使用 3 个参数在 python 中扩展切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808534/