1. Отфильтровать пользователей старше 18 лет

Отбираем пользователей с age > 18, сохраняем их в JSON и отдельно считаем статистику по выбранной группе. Для пустой выборки средний, минимальный и максимальный возраст записываем как null.

Короткий ответ

Что ответить на собеседовании

Отбираем пользователей с age > 18, сохраняем их в JSON и отдельно считаем статистику по выбранной группе. Для пустой выборки средний, минимальный и максимальный возраст записываем как null.

Подробный разбор

Ответ с пояснениями

Условие

  1. Отфильтровать пользователей старше 18 лет
  2. Сохранить отфильтрованные данные в один файл в формате JSON
  3. Создать и сохранить отдельный файл со статистикой по всем отфильтрованным пользователям:
    • Общее количество пользователей
    • Средний возраст (округлить до 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 следует обработать до вычислений.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее