Dictionaries

Dictionaries are used to store data values in key:value pairs.

A dictionary is a collection which is ordered*, changeable and do not allow duplicates.

// Example
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

Dictionaries are written with curly brackets, and have keys and values:

// Example
// Create and print a dictionary:
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)

Dictionary Items

Dictionary items are ordered, changeable, and does not allow duplicates.

Dictionary items are presented in key:value pairs, and can be referred to by using the key name.

Ordered or Unordered?

As of Python version 3.7, dictionaries are ordered. In Python 3.6 and earlier, dictionaries are unordered.

When we say that dictionaries are ordered, it means that the items have a defined order, and that order will not change.

Unordered means that the items does not have a defined order, you cannot refer to an item by using an index.

Changeable

Dictionaries are changeable, meaning that we can change, add or remove items after the dictionary has been created.

Duplicates Not Allowed

Dictionaries cannot have two items with the same key:

Dictionary Length

To determine how many items a dictionary has, use the len() function:

Dictionary Items - Data Types

The values in dictionary items can be of any data type:

type()

From Python's perspective, dictionaries are defined as objects with the data type 'dict':

<class 'dict'>

Python Collections (Arrays)

There are four collection data types in the Python programming language:

  • List is a collection which is ordered and changeable. Allows duplicate members.

  • Tuple is a collection which is ordered and unchangeable. Allows duplicate members.

  • Set is a collection which is unordered, unchangeable*, and unindexed. No duplicate members.

  • Dictionary is a collection which is ordered** and changeable. No duplicate members.

*Set items are unchangeable, but you can remove and/or add items whenever you like.

**As of Python version 3.7, dictionaries are ordered. In Python 3.6 and earlier, dictionaries are unordered.

When choosing a collection type, it is useful to understand the properties of that type. Choosing the right type for a particular data set could mean retention of meaning, and, it could mean an increase in efficiency or security.

Accessing Items

You can access the items of a dictionary by referring to its key name, inside square brackets:

There is also a method called get() that will give you the same result:

Get Keys

The keys() method will return a list of all the keys in the dictionary.

The list of the keys is a view of the dictionary, meaning that any changes done to the dictionary will be reflected in the keys list.

Get Values

The values() method will return a list of all the values in the dictionary.

The list of the values is a view of the dictionary, meaning that any changes done to the dictionary will be reflected in the values list.

Get Items

The items() method will return each item in a dictionary, as tuples in a list.

The returned list is a view of the items of the dictionary, meaning that any changes done to the dictionary will be reflected in the items list.

Check if Key Exists

To determine if a specified key is present in a dictionary use the in keyword:

Change Values

You can change the value of a specific item by referring to its key name:

Update Dictionary

The update() method will update the dictionary with the items from the given argument.

The argument must be a dictionary, or an iterable object with key:value pairs.

Adding Items

Adding an item to the dictionary is done by using a new index key and assigning a value to it:

Update Dictionary

The update() method will update the dictionary with the items from a given argument. If the item does not exist, the item will be added.

The argument must be a dictionary, or an iterable object with key:value pairs.

Removing Items

There are several methods to remove items from a dictionary:

Loop Through a Dictionary

You can loop through a dictionary by using a for loop.

When looping through a dictionary, the return value are the keys of the dictionary, but there are methods to return the values as well.

Copy a Dictionary

You cannot copy a dictionary simply by typing dict2 = dict1, because: dict2 will only be a reference to dict1, and changes made in dict1 will automatically also be made in dict2.

There are ways to make a copy, one way is to use the built-in Dictionary method copy().

Another way to make a copy is to use the built-in function dict().

Nested Dictionaries

A dictionary can contain dictionaries, this is called nested dictionaries.

Or, if you want to add three dictionaries into a new dictionary:

Dictionary Methods

Python has a set of built-in methods that you can use on dictionaries.

Method
Description

Removes all the elements from the dictionary

Returns a copy of the dictionary

Returns a dictionary with the specified keys and value

Returns the value of the specified key

Returns a list containing a tuple for each key value pair

Returns a list containing the dictionary's keys

Removes the element with the specified key

Removes the last inserted key-value pair

Returns the value of the specified key. If the key does not exist: insert the key, with the specified value

Updates the dictionary with the specified key-value pairs

Returns a list of all the values in the dictionary

Last updated