def insert(self, item_new, pos): """given an item and a position, this method insert an item at the position required""" actual_position = 0 previous_position = None current = self.head new_node = Node(None, item_new) while actual_position != pos and current is not None: previous_position = current current = current.next actual_position += 1 if actual_position != pos: raise ValueError("Invalid Position %d" % pos) previous_position.next = new_node new_node.next = current new_node.previous = previous_position if current is None: self.tail = new_node else: current.previous = new_node return self