def remove_range(self, start, end, callback=None):
        '''Remove a range by rank.

        This is equivalent to perform::

            del l[start:end]

        on a python list.
        It returns the number of element removed.
        '''
        N = len(self)
        if start < 0:
            start = max(N + start, 0)
        if start >= N:
            return 0
        if end is None:
            end = N
        elif end < 0:
            end = max(N + end, 0)
        else:
            end = min(end, N)
        if start >= end:
            return 0
        node = self._head
        index = 0
        chain = [None] * self._level
        for i in range(self._level-1, -1, -1):
            while node.next[i] and (index + node.width[i]) <= start:
                index += node.width[i]
                node = node.next[i]
            chain[i] = node
        node = node.next[0]
        initial = self._size
        while node and index < end:
            next = node.next[0]
            self._remove_node(node, chain)
            index += 1
            if callback:
                callback(node.score, node.value)
            node = next
        return initial - self._size
def remove_range ( self , start , end , callback = None ) : N = len ( self ) if start < 0 : start = max ( N + start , 0 ) if start >= N : return 0 if end is None : end = N elif end < 0 : end = max ( N + end , 0 ) else : end = min ( end , N ) if start >= end : return 0 node = self . _head index = 0 chain = [ None ] * self . _level for i in range ( self . _level - 1 , - 1 , - 1 ) : while node . next [ i ] and ( index + node . width [ i ] ) <= start : index += node . width [ i ] node = node . next [ i ] chain [ i ] = node node = node . next [ 0 ] initial = self . _size while node and index < end : next = node . next [ 0 ] self . _remove_node ( node , chain ) index += 1 if callback : callback ( node . score , node . value ) node = next return initial - self . _size
Remove a range by rank.

        This is equivalent to perform::

            del l[start:end]

        on a python list.
        It returns the number of element removed.