mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
Issue #23086: Add start and stop arguments to the Sequence.index() mixin method.
This commit is contained in:
parent
256613c605
commit
ec219ba1c0
5 changed files with 69 additions and 5 deletions
|
|
@ -825,13 +825,23 @@ class Sequence(Sized, Iterable, Container):
|
|||
for i in reversed(range(len(self))):
|
||||
yield self[i]
|
||||
|
||||
def index(self, value):
|
||||
'''S.index(value) -> integer -- return first index of value.
|
||||
def index(self, value, start=0, stop=None):
|
||||
'''S.index(value, [start, [stop]]) -> integer -- return first index of value.
|
||||
Raises ValueError if the value is not present.
|
||||
'''
|
||||
for i, v in enumerate(self):
|
||||
if v == value:
|
||||
return i
|
||||
if start is not None and start < 0:
|
||||
start = max(len(self) + start, 0)
|
||||
if stop is not None and stop < 0:
|
||||
stop += len(self)
|
||||
|
||||
i = start
|
||||
while stop is None or i < stop:
|
||||
try:
|
||||
if self[i] == value:
|
||||
return i
|
||||
except IndexError:
|
||||
break
|
||||
i += 1
|
||||
raise ValueError
|
||||
|
||||
def count(self, value):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue