Почему мы не можем проверить, появляется ли индекс в объекте среза? - PullRequest
0 голосов
/ 26 февраля 2019

При базовом использовании объект среза представляет подмножество целочисленных индексов последовательности.Почему я не могу проверить, является ли индекс членом этого подмножества с in?Это может быть постоянное время, аналогично соответствующей операции над (Python 3) range объектом .

1 Ответ

0 голосов
/ 26 февраля 2019

Поскольку даже базовые срезы поддерживают отрицательные индексы, проверка на наличие содержимого требует знания длины последовательности.Вы можете указать эту длину с помощью range:

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

xrange в Python 2 не поддерживает нарезку (или проверку на постоянство времени).

...