Skip to content
Case-insensitive dictionary
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
dicti handling duplicate keys
.gitignore copy the recipe
AGPL discription files discription files note in history
LICENSE license from "DumpTruck" to "dicti"
MANIFEST move version to init discription files discription files
README.txt readme


dicti is a dictionary with case-insensitive keys.

It works like the normal dict except that key matching is case-insensitive.


pip install dicti


Import dicti.

from dicti import dicti

Then instantiate dicti like you would a normal dict; for example, these work.

dict(foo = 'bar', answer = 42)
dicti(foo = 'bar', answer = 42)

dict({'foo': 'bar', 'answer': 42})
dicti({'foo': 'bar', 'answer': 42})

Retrieving keys

You can retrieve an item with a case-insensitive match.

di = dicti()
di['cAsE'] = 1
di['case'] == di['CASE']

Methods that record keys record the original case, just as a normal dictionary does.

di = dicti()
di['cAsE'] = 1
di.keys() == ['cAsE']
di['Case'] = 1
di.keys() == ['Case']
di['caSE'] == 1

Keys are still stored in their original case, however; the original keys are presented when you request them with methods like dicti.keys.

Something went wrong with that request. Please try again.