Dictionaries in Python
A dictionary is another mutable container model that can store any type of object.
Each key-value pair in a dictionary is written as key => value and separated by a colon (:). Pairs are separated by commas (,), and the entire dictionary is enclosed within curly braces {}, as shown in the format below:
d = {key1: value1, key2: value2, key3: value3}Note: Since
dictis a Python keyword and built-in function, it's best to avoid naming your variablesdict.

Keys must be unique, but values do not need to be.
Values can be of any data type, but keys must be immutable, such as strings or numbers.
Example of a Simple Dictionary:
tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}Alternative Dictionary Creation:
tinydict1 = {'abc': 456}
tinydict2 = {'abc': 123, 98.6: 37}Creating an Empty Dictionary
You can create an empty dictionary using curly braces {}.
Example:
# Creating an empty dictionary using {}
emptyDict = {}
# Printing the dictionary
print(emptyDict)
# Checking the number of items in the dictionary
print("Length:", len(emptyDict))
# Checking the type of the dictionary
print(type(emptyDict))Output:
{}
Length: 0
<class 'dict'>You can also create an empty dictionary using the built-in dict() function.
Example:
emptyDict = dict()
# Printing the dictionary
print(emptyDict)
# Checking the number of items in the dictionary
print("Length:", len(emptyDict))
# Checking the type of the dictionary
print(type(emptyDict))Output:
{}
Length: 0
<class 'dict'>Accessing Values in a Dictionary
You can access dictionary values by placing the corresponding key within square brackets, as shown in the example below:
Example:
#!/usr/bin/python3
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print("tinydict['Name']: ", tinydict['Name'])
print("tinydict['Age']: ", tinydict['Age'])Output:
tinydict['Name']: Runoob tinydict['Age']: 7
If you attempt to access a key that doesn't exist in the dictionary, Python will raise a KeyError.
Example:
#!/usr/bin/python3
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print("tinydict['Alice']: ", tinydict['Alice'])Output:
Traceback (most recent call last):
File "test.py", line 5, in <module>
print("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'Modifying a Dictionary
To add new content to a dictionary, you can add new key-value pairs, or modify or delete existing ones. See the example below:
Example:
#!/usr/bin/python3
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # Update Age
tinydict['School'] = "Course" # Add new key-value pair
print("tinydict['Age']: ", tinydict['Age'])
print("tinydict['School']: ", tinydict['School'])Output:
tinydict['Age']: 8 tinydict['School']: Course
Deleting Dictionary Elements
You can delete individual elements or clear the entire dictionary with a single operation.
To explicitly delete an element from the dictionary, you can use the del command as shown below:
Example:
#!/usr/bin/python3
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # Delete key 'Name'
tinydict.clear() # Clear the dictionary
del tinydict # Delete the dictionary
print("tinydict['Age']: ", tinydict['Age'])
print("tinydict['School']: ", tinydict['School'])This will raise an exception because the dictionary no longer exists after the del operation:
Output:
Traceback (most recent call last):
File "/runoob-test/test.py", line 9, in <module>
print("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not definedNote: We will discuss the
del()method later.
Dictionary Key Characteristics
The values of a dictionary can be any Python object, either standard or user-defined. However, the keys have some restrictions.
There are two important points to remember:
Duplicate keys are not allowed: If a dictionary is created with duplicate keys, only the last occurrence of the key will be remembered. See the example below:
Example:
#!/usr/bin/python3
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Course'}
print("tinydict['Name']: ", tinydict['Name'])Output:
tinydict['Name']: Course
Keys must be immutable: This means that numbers, strings, or tuples can be used as dictionary keys, but not lists. See the example below:
Example:
#!/usr/bin/python3
tinydict = {['Name']: 'Runoob', 'Age': 7}
print("tinydict['Name']: ", tinydict['Name'])This will raise an exception because lists are mutable and cannot be used as dictionary keys:
Output:
Traceback (most recent call last):
File "test.py", line 3, in <module>
tinydict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'Built-in Functions and Methods of Dictionaries
Python dictionaries include the following built-in functions:
| Index | Function & Description | Example |
|---|---|---|
| 1 | len(dict) | Calculates the total number of elements in the dictionary, i.e., the total number of keys. |
python<br>tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}<br>len(tinydict)<br># Output: 3 | ||
| 2 | str(dict) | Outputs the dictionary as a printable string representation. |
python<br>tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}<br>str(tinydict)<br># Output: "{'Name': 'Runoob', 'Class': 'First', 'Age': 7}" | ||
| 3 | type(variable) | Returns the type of the input variable; if the variable is a dictionary, it returns the dictionary type. |
python<br>tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}<br>type(tinydict)<br># Output: <class 'dict'> |
Built-in Methods of Python Dictionaries
| Index | Method & Description |
|---|---|
| 1 | dict.clear() |
| 2 | dict.copy() |
| 3 | dict.fromkeys(seq, val) |
| 4 | dict.get(key, default=None) |
| 5 | key in dict |
| 6 | dict.items() |
| 7 | dict.keys() |
| 8 | dict.setdefault(key, default=None) |
| 9 | dict.update(dict2) |
| 10 | dict.values() |
| 11 | dict.pop(key, [default]) |
| 12 | dict.popitem() |
