This code is known to work on CPython 2.x, CPython 3.x, Pypy 2.2 and Jython 2.7b1.
EG:
In [1]: import dupdict_mod
In [2]: dupdict = dupdict_mod.Dupdict(dict())
In [3]: for i in range(10):
   ...:     dupdict[i] = 2**i
   ...:
In [5]: list(dupdict.items())
Out[5]:
[(0, 1),
 (1, 2),
 (2, 4),
 (3, 8),
 (4, 16),
 (5, 32),
 (6, 64),
 (7, 128),
 (8, 256),
 (9, 512)]
In [6]: for i in range(3, 7):
    dupdict[i] = 3**i
   ...:
In [7]: list(dupdict.items())
Out[7]:
[(0, 1),
 (1, 2),
 (2, 4),
 (3, 8),
 (3, 27),
 (4, 16),
 (4, 81),
 (5, 32),
 (5, 243),
 (6, 64),
 (6, 729),
 (7, 128),
 (8, 256),
 (9, 512)]
You can check it out here.
See also this list of datastructures I've worked on.
You can e-mail the author with questions or comments: