Menu
Coddy logo textTech

Transformador de Dados

Parte da seção Logic & Flow do Journey de Python da Coddy — lição 78 de 78.

challenge icon

Desafio

Difícil

Crie uma função chamada transform_dataset que processe uma lista de registros de estudantes para análise.

Cada registro é um dicionário contendo:

  • student_id: Um identificador único para o estudante
  • grades: Uma lista de notas numéricas
  • subjects: Uma lista de disciplinas que o estudante está cursando

Sua função deve:

  1. Calcular a média das notas de cada estudante
  2. Incluir apenas estudantes que possuem todas as notas acima de 70 (estudantes qualificados) - você deve usar a função all() do Python para verificar esta condição
  3. Criar um resumo das disciplinas cursadas pelos estudantes qualificados, contando quantos estudantes qualificados cursam cada disciplina
  4. Retornar um dicionário com duas chaves:
    • qualified_students: Um dicionário mapeando IDs de estudantes às suas médias de notas (arredondadas para 2 casas decimais)
    • subject_summary: Um dicionário mapeando disciplinas à contagem de estudantes qualificados que cursam essa disciplina

Nota: A função all() no Python retorna True apenas se todos os elementos no iterável forem verdadeiros. Por exemplo, all(grade > 70 for grade in grades) retornará True apenas se cada nota for superior a 70.

Exemplo de Entrada:

[
    {
        "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"]
    }
]

Exemplo de Saída:

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

Experimente você mesmo

def transform_dataset(data):
    # Sua solução aqui
    
    # Passo 1: Calcular a média das notas de cada aluno e filtrar alunos qualificados
    # (alunos com todas as notas acima de 70)
    
    # Passo 2: Criar um resumo das disciplinas cursadas pelos alunos qualificados
    
    # Passo 3: Retornar o dicionário final com qualified_students e subject_summary
    pass

Todas as lições de Logic & Flow