您在寻找开始,停止和步骤属性吗?
>>> s = slice(1, 2, 3)
>>> s.start
1
>>> s.stop
2
>>> s.step
3
slice.indices计算将为具有输入长度的iterable访问的索引的开始/停止/步骤.所以,
>>> s = slice(-1, None, None)
>>> s.indices(30)
(29, 30, 1)
这意味着您将从迭代中获取项目29.它可以方便地与xrange(或范围)组合:
for item in range(*some_slice.indices(len(sequence))):
print(sequence[item])
作为一个具体的例子:
>>> a = range(30)
>>> for i in a[-2:]:
... print(i)
...
28
29
>>> s = slice(-2, None, None)
>>> for ix in range(*s.indices(len(a))):
... print(a[ix])
...
28
29