为啥我们不能检查索引是不是出现在切片对象中?
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
不支持切片(或恒定时间包含检查)。
【讨论】:
以上是关于为啥我们不能检查索引是不是出现在切片对象中?的主要内容,如果未能解决你的问题,请参考以下文章
在二分查找中,为啥不先检查要查找的元素是不是小于或大于数组的最小或最大索引?