为啥我们不能检查索引是不是出现在切片对象中?

Posted

技术标签:

【中文标题】为啥我们不能检查索引是不是出现在切片对象中?【英文标题】:Why can’t we check if an index appears in a slice object?为什么我们不能检查索引是否出现在切片对象中? 【发布时间】:2019-07-20 08:33:44 【问题描述】:

在基本使用中,slice object 表示序列的整数索引的子集。为什么我不能用in 测试索引是否是该子集的成员?它可以是常数时间,类似于 (Python 3) range object 上的相应操作。

【问题讨论】:

【参考方案1】:

因为即使是基本切片也支持负索引,所以检查包含需要知道序列的长度。您可以使用range 提供该长度:

so=slice(b,e,s)
r=range(n)[so]
if i in r: # ...

Python 2 中的xrange 不支持切片(或恒定时间包含检查)。

【讨论】:

以上是关于为啥我们不能检查索引是不是出现在切片对象中?的主要内容,如果未能解决你的问题,请参考以下文章