bastibe
bastibe

Reputation: 17189

how to store key-value as well as value-key in Python?

I have this somewhat big data structure that stores pairs of data. The individual data is tiny and readily hashable, and there are something like a few hundred thousand data points in there.

At first, this was a simple dict that was accessed only by keys. Later on however, I discovered that I also needed to access it by value, that is, get the key for a certain value. Since this was done somewhat less often (~1/10) than access by key, I naïvely implemented it by simply iterating over all the dicts items(). Which proved a bit sluggish at a few hundred thousand calls per second. It is about 500 times slower.

So my next idea was to just use save the reverse dict, too. This seems to be a rather inelegant solution however, so I turn to you guys for help.

Do you know any data structure in Python that stores data pairs that can be accessed by either data point of the pair?

Upvotes: 4

Views: 192

Answers (1)

Björn Pollex
Björn Pollex

Reputation: 76788

You could try bidict.

Upvotes: 4

Related Questions