Skip to content

[slice]扩展切片操作

切片操作是Python实现中最常用的功能之一,重新小结几种不同的切片操作

基本切片

基本切片语法如下:

list[start:stop]

常用以下几种实现方式:

  • 缺省start
    • 语法:list[:stop]
    • 作用:取前stop个元素
  • 缺省stop
    • 语法:list[start:]
    • 作用:取start开始的所有元素
  • 同时缺省startstop
    • 语法:list[:]
    • 作用:取整个列表的所有元素

通常情况下,下标start小于stop,如果出现start大于等于stop,那么返回空列表

扩展切片

扩展切片语法如下:

a[start:stop:step]

增加了step参数,表示每隔多少个位置取一个元素,如果为空,默认为1,即取[start, stop)区间内所有的元素

另一种扩展切片:...

阅读源码过程中还发现了一个切片符号...,其实现如下:

>>> import numpy as np
>>> a = np.random.randn(2, 3, 4)
>>> a
array([[[-1.08746212, -1.98456057,  0.31604132,  0.77781412],
        [ 0.09395506,  0.89095723,  0.33838468,  1.7124017 ],
        [ 0.91403118, -0.27132943,  2.10017449, -0.05663262]],

       [[ 0.38814181,  0.30023491, -0.0099694 ,  0.53520844],
        [-2.01299842, -0.17652996,  0.261344  ,  0.19216268],
        [ 0.15511314, -0.48549088, -0.30289901,  1.46871216]]])
>>> a[:, :, 3]
array([[ 0.77781412,  1.7124017 , -0.05663262],
       [ 0.53520844,  0.19216268,  1.46871216]])
>>> a[..., 3]
array([[ 0.77781412,  1.7124017 , -0.05663262],
       [ 0.53520844,  0.19216268,  1.46871216]])

相关阅读