A dictionary in Python is an unordered, mutable collection of key-value pairs. Each key in a dictionary must be unique and immutable (like strings, numbers, or tuples), while the values can be of any data type.
Creating a Dictionary
You can create a dictionary using curly braces {}
or the dict()
constructor.
# Creating dictionaries empty_dict = {} # An empty dictionary person = {"name": "John", "age": 25, "profession": "Engineer"} print(person) # Output: {'name': 'John', 'age': 25, 'profession': 'Engineer'}
Accessing Dictionary Elements
You can access dictionary values using their keys.
# Accessing values person = {"name": "John", "age": 25, "profession": "Engineer"} print(person["name"]) # Output: John print(person["age"]) # Output: 25
Note: If you try to access a key that doesn’t exist, Python raises a KeyError
.
Adding and Updating Elements
To add or update elements in a dictionary, use the key and assign a new value.
# Adding and updating elements person = {"name": "John", "age": 25} # Adding a new key-value pair person["city"] = "New York" # Updating an existing value person["age"] = 26 print(person) # Output: {'name': 'John', 'age': 26, 'city': 'New York'}
Removing Elements
Python provides several methods to remove elements from a dictionary.
pop(key)
: Removes the element with the specified key and returns its value.popitem()
: Removes and returns the last inserted key-value pair (Python 3.7+).del
: Deletes a key-value pair by key.clear()
: Removes all elements from the dictionary.
# Removing elements person = {"name": "John", "age": 25, "city": "New York"} # Using pop() age = person.pop("age") print(age) # Output: 25 # Using del del person["city"] # Using clear() person.clear() print(person) # Output: {}
Common Dictionary Methods
Here are some of the most useful dictionary methods:
get(key[, default])
: Returns the value for the specified key. If the key doesn’t exist, it returns the default value (orNone
).keys()
: Returns a view object containing the keys of the dictionary.values()
: Returns a view object containing the values of the dictionary.items()
: Returns a view object containing the key-value pairs of the dictionary.update([other])
: Updates the dictionary with key-value pairs from another dictionary or an iterable of key-value pairs.
Examples:
# Dictionary methods person = {"name": "John", "age": 25} # get() method print(person.get("name")) # Output: John print(person.get("city", "Not found")) # Output: Not found # keys(), values(), and items() methods print(person.keys()) # Output: dict_keys(['name', 'age']) print(person.values()) # Output: dict_values(['John', 25]) print(person.items()) # Output: dict_items([('name', 'John'), ('age', 25)])
Dictionary Comprehension
You can create dictionaries using dictionary comprehension for concise and readable code.
# Dictionary comprehension squares = {x: x**2 for x in range(1, 6)} print(squares) # Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Nesting Dictionaries
Dictionaries can contain other dictionaries, allowing you to create nested data structures.
# Nested dictionary students = { "John": {"age": 25, "grade": "A"}, "Jane": {"age": 22, "grade": "B"} } print(students["John"]["grade"]) # Output: A
Conclusion
Python dictionaries are a powerful and flexible way to store key-value pairs. With various methods and operations, you can easily manipulate and access data efficiently. Understanding dictionaries will help you solve complex problems and organize data more effectively.