Dictionaries
Contents
Dictionaries#
So far we have only looked at sequence data structures, where elements are referred to by their position in the sequence. In dictionaries, however, the objects stored are referred to by a key. Keys must be an immutable type, for example a string, number or tuple containing only immutable types.
You can create a dictionary using the dict
function; and assign values using the subscript notation:
dictionary[key] = value
d = dict()
d[1] = 'a'
d['lst'] = [1, 2, 3]
print(d)
{1: 'a', 'lst': [1, 2, 3]}
You can also access dictionary values using the subscript notation:
print(d[1])
a
An alternative way to initialize a dictionary with key-value pairs is:
{key1 : value1, key2 : value2}
much like it appears in the print output:
d = {1 : 'a', 'lst' : [1, 2, 3]}
print(d)
{1: 'a', 'lst': [1, 2, 3]}
Note that using a key that doesn’t exist in the dictionary will give you a KeyError
:
print(d[2])
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-5-c8f93a31d4a2> in <module>
----> 1 print(d[2])
KeyError: 2
Listing the Keys Which Exist#
Often you will want a list of the keys which a dictionary has. For this you can use the dict.keys()
method:
print(d.keys())
dict_keys([1, 'lst'])
One use for this is to check if a dictionary has the key you’re looking for if you want to avoid an error:
if 2 in d.keys():
print(d[2])
else:
print(2, 'not a key in d')
2 not a key in d