# 2️⃣ `02_dictionaries.md`
# Dictionaries
### Principle
Use `dict` only for **dynamic or unstructured** data.
Prefer `dataclass`, `Enum`, or `TypedDict` for known structures.
### ✅ Prefer
```python
@dataclass
class User:
name: str
age: int
```
### ❌ Avoid
```python
{"name": "Alice", "age": 30}
```
### OK When
* User-defined settings or metadata
* Serialization (`.to_json()`, `.from_dict()`)
* Counters or frequency maps
### Tips
* Annotate types: `Dict[str, Any]`
* Use `.get()` or `in` to prevent `KeyError`
* Use constants for dict keys when possible
---
### 🤝 Our Philosophy
Dicts are great for flexibility — not for structure.
Use them intentionally, not by habit.