Menu
CoddyTech

Transformador de Dados

Parte da seção Lógica e Fluxo 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 que contém:

  • student_id: Um identificador exclusivo do estudante
  • grades: Uma lista de notas numéricas
  • subjects: Uma lista das matérias que o estudante está cursando

Sua função deve:

  1. Calcular a nota média de cada estudante
  2. Incluir somente estudantes cujas notas sejam todas acima de 70 (estudantes qualificados) — você deve usar a função all() do Python para verificar essa condição
  3. Criar um resumo das matérias cursadas pelos estudantes qualificados, contando quantos estudantes qualificados cursam cada matéria
  4. Retornar um dicionário com duas chaves:
    • qualified_students: Um dicionário que associa os IDs dos estudantes às respectivas notas médias (arredondadas para 2 casas decimais)
    • subject_summary: Um dicionário que associa as matérias à quantidade de estudantes qualificados que cursam cada matéria

Observação: A função all() em Python retorna True somente se todos os elementos do iterável forem verdadeiros. Por exemplo, all(grade > 70 for grade in grades) retornará True somente se todas as notas forem acima de 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
    
    # Etapa 1: Calcule a média das notas de cada estudante e filtre os estudantes qualificados
    # (estudantes com todas as notas acima de 70)
    
    # Etapa 2: Crie um resumo das disciplinas cursadas pelos estudantes qualificados
    
    # Etapa 3: Retorne o dicionário final com qualified_students e subject_summary
    pass

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de Python online