Efficient, Pythonic bidirectional map implementation and related functionality.

bidict logo Support bidict


Latest release Follow on VersionEye Documentation Build status Test coverage Supported Python versions Supported Python implementations License Chat

The bidict codebase is mature, well-tested, and well-reviewed. If you have a question or find an issue, please don’t hesitate to ask in the chat room, file an issue, or submit a pull request.


pip install bidict


For usage documentation, please start at the Introduction and proceed from there.

In case you’re reading this on GitHub, PyPI, in your code editor, or in some other place that can’t render/link the full docs properly, you can find the bidict documentation on Read the Docs at:

Note that multiple versions of the documentation are published there, and by default you will be taken to the version built from the master branch. You can choose different versions from the pop-up menu in the lower-right.

You can also build the docs yourself by running make html from the docs directory (requires Sphinx).


Contributions are gratefully received! For information about contributing, please see Contributors’ Guide (./CONTRIBUTING.rst |


For a history of notable changes to bidict, check out the Changelog (./CHANGELOG.rst |