[docs]classDynamicDictList(Generic[VT]):""" A list-like container class that internally uses dicts to store values when the number of values is less than the threshold `LIST2DICT_THRESHOLD`. Keys must be ints. The default thresholds are determined according to experiments described at https://github.com/angr/angr/pull/3471#issuecomment-1236515950. """__slots__=("list_content","dict_content","max_size")
def_initialize_content(self,content)->None:ifisinstance(content,DynamicDictList):# make a copyself.list_content=list(content.list_content)ifcontent.list_contentisnotNoneelseNoneself.dict_content=dict(content.dict_content)ifcontent.dict_contentisnotNoneelseNonereturn# initializing from a list or a dictiflen(content)<LIST2DICT_THRESHOLD:# use a dictifisinstance(content,list):self.dict_content=dict(enumerate(content))else:self.dict_content=dict(content)else:# use a listifisinstance(content,list):self.list_content=list(content)else:self.list_content=[None]*self.max_sizefork,vincontent.items():self.list_content[k]=v