Отбираем пользователей с age > 18, сохраняем их в JSON и отдельно считаем статистику по выбранной группе. Для пустой выборки средний, минимальный и максимальный возраст записываем как null.
1. Отфильтровать пользователей старше 18 лет
Отбираем пользователей с age > 18, сохраняем их в JSON и отдельно считаем статистику по выбранной группе. Для пустой выборки средний, минимальный и максимальный возраст записываем как null.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
- Отфильтровать пользователей старше 18 лет
- Сохранить отфильтрованные данные в один файл в формате JSON
- Создать и сохранить отдельный файл со статистикой по всем отфильтрованным пользователям:
- Общее количество пользователей
- Средний возраст (округлить до 1 знака после запятой)
- Минимальный и максимальный возраст
Ответ
Отбираем пользователей с age > 18, сохраняем их в JSON и отдельно считаем статистику по выбранной группе. Для пустой выборки средний, минимальный и максимальный возраст записываем как null.
Предположим, users — список словарей с проверенным целочисленным полем age. «Старше 18» не включает возраст 18.
import json
selected = [u for u in users if u['age'] > 18]
ages = [u['age'] for u in selected]
stats = {
'count': len(ages),
'average_age': round(sum(ages) / len(ages), 1) if ages else None,
'min_age': min(ages) if ages else None,
'max_age': max(ages) if ages else None,
}
for name, data in [('adults.json', selected), ('stats.json', stats)]:
with open(name, 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=2)
Режим w перезаписывает существующие файлы. Некорректный или отсутствующий age следует обработать до вычислений.