Practical Use Cases
Data Aggregation and Grouping
Counting Occurrences
## Word frequency counter
text = "LabEx is awesome LabEx provides great coding tutorials"
word_count = {}
for word in text.split():
word_count[word] = word_count.get(word, 0) + 1
print(word_count)
Nested Data Tracking
## Student grade management
student_grades = {}
def add_student_grade(student_grades, name, subject, grade):
if name not in student_grades:
student_grades[name] = {}
student_grades[name][subject] = grade
add_student_grade(student_grades, "Alice", "Math", 95)
add_student_grade(student_grades, "Alice", "Python", 98)
Configuration Management
Dynamic Configuration Handling
class ConfigManager:
def __init__(self):
self.config = {}
def set_config(self, key, value):
self.config[key] = value
def get_config(self, key, default=None):
return self.config.get(key, default)
config = ConfigManager()
config.set_config("debug_mode", True)
config.set_config("max_connections", 100)
Caching and Memoization
Function Result Caching
def memoize(func):
cache = {}
def wrapper(*args):
if args not in cache:
cache[args] = func(*args)
return cache[args]
return wrapper
@memoize
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
## User data normalization
raw_users = [
{"name": "john", "age": 30},
{"name": "jane", "age": 25}
]
normalized_users = {
user['name'].capitalize(): {
'age': user['age'],
'status': 'active'
} for user in raw_users
}
Workflow Visualization
flowchart TD
A[Dictionary Use Cases]
A --> B[Data Aggregation]
A --> C[Configuration Management]
A --> D[Caching]
A --> E[Data Transformation]
Use Case |
Efficiency |
Memory Usage |
Counting |
O(n) |
Low |
Caching |
O(1) after first call |
Moderate |
Transformation |
O(n) |
Moderate |
Advanced Patterns
Multilevel Dictionary Manipulation
def deep_update(base_dict, update_dict):
for key, value in update_dict.items():
if isinstance(value, dict):
base_dict[key] = deep_update(base_dict.get(key, {}), value)
else:
base_dict[key] = value
return base_dict
system_config = {
'database': {'host': 'localhost'},
'logging': {'level': 'info'}
}
update_config = {
'database': {'port': 5432},
'security': {'enabled': True}
}
deep_update(system_config, update_config)
Best Practices
- Use dictionaries for complex data relationships
- Leverage built-in methods for efficient manipulation
- Consider memory usage in large-scale applications
- Implement error handling for dynamic extensions