您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:带间隙的切片的语法较短?

Python:带间隙的切片的语法较短?

切片器对象(例如,SliceMaker来自其他问题或np.s_)可以接受多个逗号分隔的切片;它们被接收为tuplesliceS或其它目的:

from numpy import s_
s_[0, 3:5, 6::3]
Out[1]: (0, slice(3, 5, None), slice(6, None, 3))

NumPy将此用于多维数组,但是您可以将其用于切片连接:

def xslice(arr, slices):
    if isinstance(slices, tuple):
        return sum((arr[s] if isinstance(s, slice) else [arr[s]] for s in slices), [])
    elif isinstance(slices, slice):
        return arr[slices]
    else:
        return [arr[slices]]
xslice(list(range(10)), s_[0, 3:5, 6::3])
Out[1]: [0, 3, 4, 6, 9]
xslice(list(range(10)), s_[1])
Out[2]: [1]
xslice(list(range(10)), s_[:])
Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
python 2022/1/1 18:53:07 有398人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶