GeraProva GeraProva Provas com IA para professores do Brasil
Computação2ª sérieBNCC EM13CO13Média⏱ medio

Em uma pesquisa escolar, as respostas sobre meios de transporte foram guardadas na lista dados. Cada item é…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO13

Analisar e utilizar as diferentes formas de representação e consulta a dados em formato digital para pesquisas científicas.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Em uma pesquisa escolar, as respostas sobre meios de transporte foram guardadas na lista dados. Cada item é uma categoria, como "ônibus" ou "bicicleta". Escreva em Python, sem usar bibliotecas externas, um trecho que construa um dicionário freq com a quantidade de vezes que cada categoria aparece em dados.

  1. A) freq = {} for x in range(len(dados)): freq[dados[x]] += 1
  2. B) freq = {} freq = dados.count(dados)
  3. C) freq = {x: dados.count(x) for x in dados if dados.index(x) == 0}
  4. D) freq = {} for x in range(10): freq[x] = dados[x]
  5. E) freq = {} for x in dados: freq[x] = freq.get(x, 0) + 1

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. O objetivo é percorrer a lista dados e contar quantas vezes cada categoria aparece, guardando o resultado num dicionário freq, em que a chave é a categoria e o valor é a contagem. Passo 2: Na alternativa E, freq começa vazio e o laço for x in dados visita cada item da lista uma vez. Passo 3: Em cada iteração, freq.get(x, 0) devolve a contagem atual de x, ou 0 se x ainda não estiver no dicionário; somar 1 e atribuir de volta a freq[x] atualiza a contagem sem gerar erro. Passo 4: Ao final do laço, cada categoria terá exatamente o número de ocorrências em dados, como o enunciado pede. Passo 5: Por que as outras estão erradas: A tenta fazer freq[dados[x]] += 1 com o dicionário vazio, o que gera KeyError, pois a chave ainda não existe. B atribui a freq o resultado de dados.count(dados), que é um inteiro e não um dicionário, além de contar a própria lista dentro dela, o que não faz sentido. C cria um dicionário apenas com o filtro dados.index(x) == 0, que só é verdadeiro para o primeiro item da lista, então o resultado tem no máximo uma chave e não reflete todas as categorias. D usa range(10), o que causa IndexError se a lista tiver menos de 10 itens, e ainda guarda o próprio item na chave em vez de contar ocorrências. Passo 6: Portanto, a resposta correta é a alternativa E, que coincide com o gabarito oficial.

💡 Dica: Percorra cada item da lista e atualize no dicionário a contagem da categoria.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

Acredita que é possível incrementar freq[chave] diretamente, mesmo sem a chave existir no dicionário, esquecendo que um += em chave inexistente lança KeyError.

Por que engana: O aluno pode tentar incrementar uma chave antes de criá-la no dicionário, sem inicializar seu valor, ou confundir a contagem de ocorrências com a busca de índices.

B Erradaerro: Conceitual

Supõe que o método count conta quantas vezes cada item aparece e que o resultado pode ser atribuído diretamente a freq, sem perceber que o argumento é a lista inteira e que o retorno é um inteiro.

C Erradaerro: Procedimental

Imagina que a condição dados.index(x) == 0 seleciona todas as categorias distintas, quando na verdade ela só é verdadeira para o primeiro elemento da lista.

D Erradaerro: Procedimental

Entende que range(10) percorre a lista inteira e que freq[x] = dados[x] conta ocorrências, quando na verdade o trecho assume tamanho fixo, pode gerar IndexError e apenas copia valores em vez de contá-los.

E Correta

O método get(x, 0) consulta a contagem atual da categoria x e usa zero quando ela ainda não aparece no dicionário. Em seguida, o trecho soma 1 à contagem.

Raio-X da questão

Dificuldade Média
Bloom Aplicar
Leitura baixo
Discriminação medio
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 progressao
🎯 Conceito central

Contagem de frequências com dicionário

📌 Objetivo

avaliacao

🧱 Pré-requisitos

Laços e listas em Python · Dicionários e acesso por chave

📚 Reveja

Revise como percorrer listas em Python e atualizar valores de um dicionário usando get().

⚠️ Erro mais comum

O aluno pode tentar incrementar uma chave antes de criá-la no dicionário, sem inicializar seu valor, ou confundir a contagem de ocorrências com a busca de índices.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

tomada_decisao

🏫 Contexto

cotidiano

Questões parecidas com resolução

Todas as questões de Construir conhecimento usando técnicas e tecnologias computacionais, produzindo informação e/ou artefatos de forma criativa, com respeito às questões legais, que proporcionem experiências para si e os demais.

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.