Python slice()函数必填stop参数的切片至末尾解决方案探究
实现切片至末尾的通用slice对象
要创建对应x[100000:]这种“从指定索引切到末尾”的切片对象,只需要给slice()函数传入起始索引,同时将stop参数设为None即可,示例如下:
# 定义从索引100000开始到末尾的切片对象 sl_from_100k = slice(100000, None) # 复用该切片对象处理不同序列 func(x[sl_from_100k]) func(y[sl_from_100k]) func(z[sl_from_100k])
扩展说明:slice函数的参数规则
slice()函数的完整签名是slice(start, stop, step),这三个参数都可以设为None,对应切片语法中省略的部分:
slice(None, 200000)等价于[:200000](从开头切到索引200000)slice(100000, 200000, 2)等价于[100000:200000:2](步长为2的切片)slice(None, None, -1)等价于[::-1](反转序列)
关于官方文档的说明,这里需要澄清:slice()并非必须指定stop参数,而是当你调用slice()不带任何参数时会报错;但只要传入至少一个有效参数(配合None代表省略),就可以生成符合需求的切片对象。
内容的提问来源于stack exchange,提问作者learnvst
相关产品推荐
相关产品推荐

