def add(self, value): index = self.indexer(value) bisect.insort_left(self.indexes, index) if index not in self.lookup: self.lookup[index] = [value] else: self.lookup[index].append(value)