This note mainly focuses on summarizing knowledge based on Corey Schafer’s Python Tutorial.

Dictionary is a collection of key-value pairs.

Creating Dictionaries

We use curly braces notation to represent a dictionary.

empty_dict = {} # create an empty dictionary

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
print(student)
{'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
  • Use keys to look up the values.
  • Use colons (:) to separate the key and the value.
  • Use commas (,) to separate key-value pairs.

Similar to string, list, etc., we can use len to get the number of the dict’s keys.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
print(len(student))
3

Accessing Dictionaries

Using Square Brackets to Access

We can square brackets ([<Key>]) to access <Value>.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
print(student['name'])
John

However, if the <Key> does not exist, the KeyError will occur.

For example, we want to get phone of student.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
print(student['phone'])
	print(student['phone'])
~~~~~~~^^^^^^^^^
KeyError: 'phone'

Using get Method to Access

To avoid KeyError, we can use get method.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
print(student.get('name'))
John

If the <Key> does not exist, it will return default value None.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
print(student.get('phone'))
None

We can also set default value for <Key> not existing.

For example, if we cannot get 'phone', it return 'Not Found'.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
print(student.get('phone', 'Not Found'))
Not Found

Accessing All the Keys and Values

Method Description
keys() All the keys in dict.
values() All the values in the dict
items() All the key-value pairs in the dict.
student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}

print(student.keys()) # keys
print(student.values()) # values
print(student.items()) # key-value pairs
dict_keys(['name', 'age', 'course'])
dict_values(['John', 25, ['Math', 'CompSci']])
dict_items([('name', 'John'), ('age', 25), ('course', ['Math', 'CompSci'])])

Modifying Dictionaries

Update Entries in Dictionaries

Similar to accessing dictionaries, we can also use [] to:

  • Add new entries
  • Update values
student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}

student['phone'] = '555-5555' # add a new entry
student['name'] = 'Jane' # update `name`'s value

print(student)
{'name': 'Jane', 'age': 25, 'course': ['Math', 'CompSci'], 'phone': '555-5555'}

We can use dict’s method update to achieve the same effect.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
student.update({'name': 'Jane', 'phone': '555-5555'})
print(student)
{'name': 'Jane', 'age': 25, 'course': ['Math', 'CompSci'], 'phone': '555-5555'}

Delete Entries in Dictionaries

There are to ways to delete entries:

  • Using del function
  • Using pop method

Firstly, we use del function to remove age from student.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
del student['age']
print(student.get('age', 'Not Found'))
Not Found

Similar to lists, we can use pop to achieve entries’ removal.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}
age = student.pop('age')
print(age)
print(student.get('age', 'Not Found'))
25
Not Found

Traversing Dictionaries

We can use for-each loops to traverse the keys, values, key-value pairs in dictionaries.

student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']}

# Traverse all the keys
print('1. Traverse all the keys')
for key in student:
print(key)

# Traverse all the values
print('\n' + '2. Traverse all the values')
for value in student.values():
print(value)

# Traverse all the key-value pairs
print('\n' + '3. Traverse all the key-value pairs')
for key, value in student.items():
print(key, value)
1. Traverse all the keys
name
age
course

2. Traverse all the values
John
25
['Math', 'CompSci']

3. Traverse all the key-value pairs
name John
age 25
course ['Math', 'CompSci']