Efficient, Pythonic bidirectional map implementation and related functionality.

bidict logo


Latest release Follow on VersionEye Documentation Build status Test coverage 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 (but first see the contributing section below).


pip install bidict

Usage Documentation

For usage documentation, please start at the Introduction and proceed from there. Problems with that link? Note the following:

If 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: multiple versions of the documentation are published on Read the Docs, 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.

If you have the bidict source code handy, you can also browse the docs insde the docs directory, and build them yourself by running make html from within that directory (requires Sphinx).


Contributions are gratefully received! For information about contributing, please see the Contributors’ Guide. If that link does not work, see CONTRIBUTING.rst or

Support bidict


For a history of notable changes to bidict, check out the Changelog. If that link does not work, see CHANGELOG.rst or