import time import random L = 10000 objects = [object() for _ in xrange(L)] dict1_items = [(o, i) for i, o in enumerate(objects)] # shuffled version shuffled_dict1_items = list(dict1_items) random.shuffle(shuffled_dict1_items) # take selected elements selected_dict1_items = [random.choice(dict1_items) for _ in xrange(L)] def time_dict_creation(): t1 = time.time() for repeat in xrange(1000): d = dict(dict1_items) t2 = time.time() return t2 - t1 def time_shuffled_dict_creation(): t1 = time.time() for repeat in xrange(1000): d = dict(shuffled_dict1_items) t2 = time.time() return t2 - t1 def time_selected_dict_creation(): t1 = time.time() for repeat in xrange(1000): d = dict(selected_dict1_items) t2 = time.time() return t2 - t1 if __name__ == '__main__': print "dict creation (selected): ", time_selected_dict_creation() print "dict creation (shuffled): ", time_shuffled_dict_creation() print "dict creation: ", time_dict_creation()