This function does three distinct jobs: filters active users, filters seniors, and formats — a maintenance nightmare.
# dirty — one function, three responsibilities
def solve(raw_users):
active = [u for u in raw_users if u['is_active']]
seniors = [u for u in active if u['age'] >= 60]
return [f"{u['name'].upper()} ({u['age']})" for u in seniors]Refactor into three functions, each with one job:
filter_active(users) — keep only active usersfilter_seniors(users) — keep only users aged 60+format_users(users) — format as "NAME (age)" stringssolve(users, 'filter_active') dispatches to the right function.
Sample tests