根据Create a slice using a tuple,你可以方便地做到:
>>> a = range(20)
>>> b = (5, 12)
>>> a[slice(*b)]
[5, 6, 7, 8, 9, 10, 11]
但我需要的是先进的:
a[5:]
a[:12]
a[:]
a[-1]
a[-2:]
a[:-2]
a[::-1]
如何使用元组和*args
?
b = (5,:)
>> File "<ipython-input-26-c4eae928199d>", line 1
>> b = (5,:)
>> ^
>>SyntaxError: invalid syntax
答案 0 :(得分:7)
对于要省略的选项,请将其替换为None
。通常,如果省略任何选项,则默认为None
。
因此slice(None, None, None)
之类的选项等同于a[::]
。另请注意start
和step
参数默认为None
。
有关。离。
a[5:] -> b=(5,None,None)
a[:12] -> b=(None,12)
a[:] -> b=(None,None)
这里需要注意的一点是,切片与索引不同。因此,如果您打算编制索引,则无法使用slice
内置函数。