1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ( from 2.7.1 Objects/dictnotes.txt ) Readonly Dictionaries --------------------- Some dictionary use cases pass through a build stage and then move to a more heavily exercised lookup stage with no further changes to the dictionary. An idea that emerged on python-dev is to be able to convert a dictionary to a read-only state. This can help prevent programming errors and also provide knowledge that can be exploited for lookup optimization. The dictionary can be immediately rebuilt (eliminating dummy entries), resized (to an appropriate level of sparseness), and the keys can be jostled (to minimize collisions). The lookdict() routine can then eliminate the test for dummy entries (saving about 1/4 of the time spent in the collision resolution loop). An additional possibility is to insert links into the empty spaces so that dictionary iteration can proceed in len(d) steps instead of (mp->mask + 1) steps. Alternatively, a separate tuple of keys can be kept just for iteration. |
Direct link: https://paste.plurk.com/show/363975