1. Dictionary Creation: Create dictionaries using curly braces `{}` or the `dict()` constructor. You can initialize a dictionary with key-value pairs or create an empty dictionary.
2. Accessing Dictionary Values: Access values in a dictionary using keys. Provide the key in square brackets (`[]`) to retrieve the corresponding value. If the key doesn’t exist, it will raise a `KeyError`. You can also use the `get()` method to retrieve values, which returns `None` if the key doesn’t exist.
3. Modifying Dictionary Values: Assign new values to dictionary keys to update the values. Dictionaries are mutable, so you can modify existing keys or add new key-value pairs.
4. Dictionary Methods: Explore built-in dictionary methods, such as `keys()`, `values()`, and `items()`. These methods provide convenient ways to access the keys, values, and key-value pairs of a dictionary.
5. Dictionary Comprehensions: Utilize dictionary comprehensions to create new dictionaries in a concise and readable manner. Dictionary comprehensions allow you to define a new dictionary by iterating over an iterable and applying transformations or conditions.
6. Iterating over Dictionaries: Use `for` loops to iterate over dictionary keys, values, or key-value pairs. Use the `items()` method to iterate over key-value pairs or use `keys()` or `values()` to iterate over only the keys or values.
7. Dictionary Membership: Check if a key exists in a dictionary using the `in` operator. This returns a boolean value indicating whether the key is present in the dictionary or not.
8. Dictionary Length: Determine the number of key-value pairs in a dictionary using the `len()` function. It returns the size of the dictionary.
9. Dictionary Merge: Merge two dictionaries using the `update()` method. This allows you to combine the key-value pairs from one dictionary into another.
10. Dictionary Sorting: Dictionaries are inherently unordered. However, you can sort the keys or key-value pairs using the `sorted()` function and dictionary comprehensions. Keep in mind that the resulting sorted object will be a list.
11. Dictionary Default Values: Use the `get()` method with a default value to retrieve values from a dictionary. If the key doesn’t exist, it will return the default value instead of raising an error.
12. Dictionary Copying: Create a shallow copy of a dictionary using the `copy()` method or the `dict()` constructor. Modifying the copy won’t affect the original dictionary. For deep copies, use the `copy.deepcopy()` method.
13. Dictionary Key Restrictions: Dictionary keys must be immutable types (e.g., strings, numbers, tuples). Mutable types like lists cannot be used as keys. Ensure that your keys are unique to avoid overwriting values.
14. Dictionary Key-Value Retrieval: Use dictionary methods like `pop()`, `popitem()`, and `clear()` to manipulate key-value pairs. These methods allow you to remove specific items or clear the entire dictionary.
15. Dictionary Default Values with `defaultdict`: Use the `defaultdict` class from the `collections` module to create dictionaries with default values. This avoids `KeyError` when accessing non-existing keys and automatically initializes the values with the specified default type.
Dictionaries in Python, Examples
1. Dictionary Creation
# Create a dictionary with key-value pairs
student = {
'name': 'John',
'age': 20,
'grade': 'A'
}
# Create an empty dictionary
empty_dict = {}
2. Accessing Dictionary Values
# Access a value by its key
name = student['name']
# Use the get() method to access a value (returns None if key doesn't exist)
grade = student.get('grade')
3. Modifying Dictionary Values
# Modify an existing value
student['age'] = 21
# Add a new key-value pair
student['city'] = 'New York'
4. Dictionary Methods
# Access keys, values, or key-value pairs using methods
keys = student.keys()
values = student.values()
items = student.items()
5. Dictionary Comprehensions
# Create a new dictionary based on an existing one
double_age = {key: value * 2 for key, value in student.items()}
6. Iterating over Dictionaries
# Iterate over keys
for key in student:
print(key)
# Iterate over values
for value in student.values():
print(value)
# Iterate over key-value pairs
for key, value in student.items():
print(key, value)
7. Dictionary Membership
# Check if a key exists in a dictionary
if 'name' in student:
print('Key exists')
8. Dictionary Length
# Determine the number of key-value pairs in a dictionary
size = len(student)
9. Dictionary Merge
# Merge two dictionaries into a new one
student_info = {'school': 'ABC High School'}
merged_dict = {**student, **student_info}
10. Dictionary Sorting
# Sort a dictionary by keys or values
sorted_by_keys = sorted(student.items())
sorted_by_values = sorted(student.items(), key=lambda x: x[1])
11. Dictionary Default Values
# Set default values for non-existing keys
grade = student.get('grade', 'N/A')
12. Dictionary Copying
# Create a shallow copy of a dictionary
new_dict = student.copy()
13. Dictionary Deletion
# Delete a key-value pair from a dictionary
del student['grade']
# Clear all key-value pairs from a dictionary
student.clear()
14. Dictionary Key Restrictions
# Use immutable types (e.g., strings, numbers) as keys
# Avoid using mutable types (e.g., lists) as keys
15. Dictionary Key-Value Retrieval
# Remove and retrieve a value for a given key
removed_value = student.pop('name')
# Remove and retrieve the last key-value pair
last_item = student.popitem()
By applying these tips and tricks, you can effectively work with dictionaries in Python and leverage their key-value pair structure to handle various programming tasks efficiently.