以下是我从The Python Language Reference中复制的切片语法:
slicing ::= primary "[" slice_list "]"
slice_list ::= slice_item ("," slice_item)* [","]
slice_item ::= expression | proper_slice
proper_slice ::= [lower_bound] ":" [upper_bound] [ ":" [stride] ]
lower_bound ::= expression
upper_bound ::= expression
stride ::= expression
Run Code Online (Sandbox Code Playgroud)
根据我的理解,这种语法相当于SomeMappingObj[slice_item,slice_item etc...]再次等同于a[0:2:1,4:7:1]和a =[i for i in range(20)].
但是,我无法在IPython中测试这个,我没有发现任何关于多个切片的问题.我对python中多次切片的解释是否正确?我做错了什么?
In [442]: a=[i for i in range(20)]
In [443]: a[0:12:2]
Out[443]: [0, 2, 4, 6, 8, 10]
In [444]: a[0:12:2,14:17:1]
---------------------------------------------------------------------------
TypeError Traceback (most recent …Run Code Online (Sandbox Code Playgroud)