i'm developing real-time application , need create instances new objects same data. first, did instantiating them, realised maybe copy.deepcopy faster. now, find people deepcopy horribly slow. i can't copy.copy because object has lists. my question is, know faster way or need give , instantiate them again? thank time i believe copy.deepcopy() still pure python, it's unlikely give speed boost. it sounds me little classic case of optimisation. suggest writing code intuitive which, in opinion, instantiating each object. can profile , see savings need made, if anywhere. may in real-world use-case different piece of code bottleneck. edit: one thing forgot mention in original answer - if you're copying list, make sure use slice notation ( new_list = old_list[:] ) rather iterating through in python, slower. won't deep copy, however, if lists have other lists or dictionaries you'll need use deepcopy() . dict objects, use copy() method. if...