<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def index(self, value, start=0, end=None):
 		"""Return the index of value between start and end. 		By default, the entire setlist is searched. 		This runs in O(1) 		Args: 			value: The value to find the index of 			start (int):
 The index to start searching at (defaults to 0) 			end (int):
 The index to stop searching at (defaults to the end of the list) 		Returns: 			int: The index of the value 		Raises: 			ValueError: If the value is not in the list or outside of start - end 			IndexError: If start or end are out of range 		"""

		try:
			index = self._dict[value]
		except KeyError:
			raise ValueError
		else:
			start = self._fix_neg_index(start)
			end = self._fix_end_index(end)
			if start <= index and index < end:
				return index
			else:
				raise ValueError