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}")