根据使用元组创建切片,您可以方便地执行:
>>> a = range(20)
>>> b = (5, 12)
>>> a[slice(*b)]
[5, 6, 7, 8, 9, 10, 11]
Run Code Online (Sandbox Code Playgroud)
但我需要的是先进的:
a[5:]
a[:12]
a[:]
a[-1]
a[-2:]
a[:-2]
a[::-1]
Run Code Online (Sandbox Code Playgroud)
怎么用元组和*args?
b = (5,:)
>> File "<ipython-input-26-c4eae928199d>", line 1
>> b = (5,:)
>> ^
>>SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
对于要省略的选项,请将其替换为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)
Run Code Online (Sandbox Code Playgroud)
这里需要注意的一点是,切片与索引不同.因此slice,如果您打算索引,则无法使用内置函数.