diff --git a/Lib/_collections_abc.py b/Lib/_collections_abc.py index 86eb042e3a75ab1..6cef19033b83461 100644 --- a/Lib/_collections_abc.py +++ b/Lib/_collections_abc.py @@ -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]: + v = self[i] + if v is value or v == value: + return i raise ValueError def count(self, value): @@ -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]) + 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).