How to index into a dictionary?

Dictionaries are unordered in Python versions up to and including Python 3.6. If you do not care about the order of the entries and want to access the keys or values by index anyway, you can create a list of keys for a dictionary d using keys = list(d), and then access keys in the list by index keys[i], and the associated values with d[keys[i]].

If you do care about the order of the entries, starting with Python 2.7 you can use collections.OrderedDict. Or use a list of pairs

l = [("blue", "5"), ("red", "6"), ("yellow", "8")]

if you don’t need access by key. (Why are your numbers strings by the way?)

In Python 3.7, normal dictionaries are ordered, so you don’t need to use OrderedDict anymore (but you still can – it’s basically the same type). The CPython implementation of Python 3.6 already included that change, but since it’s not part of the language specification, you can’t rely on it in Python 3.6.

Leave a Comment