Menu
Coddy logo textTech

Преобразователь данных

Часть раздела Logic & Flow путешествия по Python на Coddy — урок 78 из 78.

challenge icon

Задание

Сложно

Создайте функцию с именем transform_dataset, которая обрабатывает список записей о студентах для анализа.

Каждая запись представляет собой словарь, содержащий:

  • student_id: Уникальный идентификатор студента
  • grades: Список числовых оценок
  • subjects: Список предметов, которые изучает студент

Ваша функция должна:

  1. Вычислить средний балл для каждого студента
  2. Включить только тех студентов, у которых все оценки выше 70 (квалифицированные студенты) — для проверки этого условия следует использовать функцию Python all()
  3. Создать сводку предметов, изучаемых квалифицированными студентами, подсчитав, сколько квалифицированных студентов изучают каждый предмет
  4. Вернуть словарь с двумя ключами:
    • qualified_students: Словарь, сопоставляющий идентификаторы студентов с их средним баллом (округленным до 2 знаков после запятой)
    • subject_summary: Словарь, сопоставляющий предметы с количеством квалифицированных студентов, изучающих этот предмет

Примечание: Функция all() в Python возвращает True только в том случае, если все элементы итерируемого объекта истинны. Например, all(grade > 70 for grade in grades) вернет True только в том случае, если каждая оценка выше 70.

Пример входных данных:

[
    {
        "student_id": "S123", 
        "grades": [88, 92, 85], 
        "subjects": ["Math", "Science", "History"]
    },
    {
        "student_id": "S124", 
        "grades": [65, 95, 80], 
        "subjects": ["Math", "Science", "English"]
    },
    {
        "student_id": "S125", 
        "grades": [91, 89, 92], 
        "subjects": ["Math", "Physics", "History"]
    }
]

Пример выходных данных:

{
    'qualified_students': {'S123': 88.33, 'S125': 90.67}, 
    'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}

Попробуйте сами

def transform_dataset(data):
    # Ваше решение здесь
    
    # Шаг 1: Вычислите средний балл для каждого студента и отфильтруйте подходящих студентов
    # (студенты, у которых все оценки выше 70)
    
    # Шаг 2: Создайте сводку предметов, изученных подходящими студентами
    
    # Шаг 3: Верните итоговый словарь с qualified_students и subject_summary
    pass

Все уроки раздела Logic & Flow