How to Create a Dictionary in Python
What is a dictionary in Python?
- An unordered collection of items is a dictionary.
- Each item is a key-value pair such that:
- The key is unique.
- The value is associated with that key and can be any data type.
Creating a Dictionary
1. Using Curly Braces ({})
The most common way to create a dictionary is by enclosing key-value pairs within curly braces.
# Example
my_dict = {
"name": "Alice",
"age": 25,
"city": "New York"
}
print(my_dict)
2. Using the dict() Constructor
You can also create a dictionary using the built-in dict() constructor.
# Example
my_dict = dict(name="Alice", age=25, city="New York")
print(my_dict)
Note: When using
dict(), keys must be valid identifiers (like variable names).
3. Creating an Empty Dictionary
You can create an empty dictionary to add key-value pairs later.
# Example
empty_dict = {}
print(empty_dict) # Output: {}
Adding Key-Value Pairs
You can add a key-value pair by assigning a value to a new key.
my_dict = {}
my_dict["name"] = "Alice"
my_dict["age"] = 25
print(my_dict) # Output: {'name': 'Alice', 'age': 25}
Accessing Values
You can access the value of a specific key using square brackets or the get() method.
# Using square brackets
print(my_dict["name"]) # Output: Alice
# Using get()
print(my_dict.get("age")) # Output: 25
Note: If the key doesn’t exist,
my_dict[key]raises aKeyError, whereasmy_dict.get(key)returnsNone.
Common Dictionary Operations
1. Updating Values
You can update the value of an existing key.
my_dict["age"] = 30
print(my_dict) # Output: {'name': 'Alice', 'age': 30}
2. Removing Items
Use del, pop(), or popitem() to remove items:
del: Removes a specific key-value pair.
del my_dict["age"]
print(my_dict) # Output: {'name': 'Alice'}
pop(): Removes a key and returns its value.
age = my_dict.pop("age")
print(age) # Output: 25
print(my_dict) # Output: {'name': 'Alice'}
popitem(): Removes the last inserted key-value pair.
item = my_dict.popitem()
print(item) # Output: ('city', 'New York')
Iterating Through a Dictionary
You can loop through keys, values, or both:
# Loop through keys
for key in my_dict:
print(key)
# Loop through values
for value in my_dict.values():
print(value)
# Loop through key-value pairs
for key, value in my_dict.items():
print(f"{key}: {value}")
Dictionary Methods
Here are some useful dictionary methods:
keys(): Returns all keys.values(): Returns all values.items(): Returns all key-value pairs.clear(): Removes all items.update(): Updates the dictionary with another dictionary.
my_dict.update({"gender": "female"})
print(my_dict) # Output: {'name': 'Alice', 'age': 25, 'gender': 'female'}
Nested Dictionaries
Dictionaries can contain other dictionaries.
nested_dict = {
"person1": {"name": "Alice", "age": 25},
"person2": {"name": "Bob", "age": 30}
}
print(nested_dict["person1"]["name"]) # Output: Alice
Key Characteristics of Dictionaries
- Keys must be immutable (e.g., strings, numbers, tuples).
- Values can be of any data type.
- Dictionaries are unordered (Python 3.6+ maintains insertion order).
Complete Example
# Create a dictionary
student = {
"name": "John",
"age": 20,
"courses": ["Math", "Science"]
}
# Access values
print(student["name"]) # Output: John
# Add a new key-value pair
student["grade"] = "A"
# Update an existing key
student["age"] = 21
# Remove a key-value pair
del student["grade"]
# Loop through dictionary
for key, value in student.items():
print(f"{key}: {value}")