Skip to content
26 changes: 9 additions & 17 deletions Lib/_collections_abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -1013,20 +1013,10 @@ def index(self, value, start=0, stop=None):
Supporting start and stop arguments is optional, but
recommended.
'''
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:
v = self[i]
if v is value or v == value:
return i
except IndexError:
break
i += 1
for i in range(len(self))[start:stop]:
Comment thread
geryogam marked this conversation as resolved.
v = self[i]
Comment thread
geryogam marked this conversation as resolved.
if v is value or v == value:
return i
raise ValueError

def count(self, value):
Expand Down Expand Up @@ -1094,9 +1084,11 @@ def reverse(self):
def extend(self, values):
'S.extend(iterable) -- extend sequence by appending elements from the iterable'
if values is self:
values = list(values)
for v in values:
self.append(v)
for i in range(len(values)):
self.append(values[i])
Comment thread
geryogam marked this conversation as resolved.
else:
for v in values:
self.append(v)

def pop(self, index=-1):
'''S.pop([index]) -> item -- remove and return item at index (default last).
Expand Down