在基本用法中,slice object表示序列的整数索引的子集。为什么我不能用in测试索引是否是该子集的成员?它可以是恒定时间,类似于(Python 3)range object上的相应操作。
in
range
因为即使基本切片支持负索引,检查包含也需要知道序列的长度。你可以用range提供那个长度:
so=slice(b,e,s) r=range(n)[so] if i in r: # ...
Python 2中的xrange不支持切片(或常量时间包含检查)。
xrange