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 = {}
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))
|
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'])
|
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'))
|
If the <Key> does not exist, it will return default value None.
student = {'name': 'John', 'age': 25, 'course': ['Math', 'CompSci']} print(student.get('phone'))
|
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'))
|
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()) print(student.values()) print(student.items())
|
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' student['name'] = 'Jane'
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'))
|
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'))
|
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']}
print('1. Traverse all the keys') for key in student: print(key)
print('\n' + '2. Traverse all the values') for value in student.values(): print(value)
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']
|