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
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.
- A) freq = {} for x in range(len(dados)): freq[dados[x]] += 1
- B) freq = {} freq = dados.count(dados)
- C) freq = {x: dados.count(x) for x in dados if dados.index(x) == 0}
- D) freq = {} for x in range(10): freq[x] = dados[x]
- E) freq = {} for x in dados: freq[x] = freq.get(x, 0) + 1
✅ Resposta correta: alternativa E
Resolução passo a passo
- 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
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.
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.
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.
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.
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
Contagem de frequências com dicionário
avaliacao
Laços e listas em Python · Dicionários e acesso por chave
Revise como percorrer listas em Python e atualizar valores de um dicionário usando get().
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.
ciencia_tecnologia
tomada_decisao
cotidiano
Questões parecidas com resolução
- Qual estrutura de dados é mais adequada, em código, para construir uma tabela de frequências de categorias (por exemplo…
- Você coletou respostas 'Sim' e 'Não' e suas contagens em uma pesquisa por amostra. Que tipos de dados e que estrutura de…
- Dado um algoritmo que conta a frequência de palavras em redações escolares, qual estrutura de dados é mais adequada para…
- Em um programa que conta a frequência de palavras em um texto, qual estrutura de dados é mais adequada para associar…
- Imagine que você está desenvolvendo um aplicativo de clima. Como você poderia organizar os dados de temperatura e…
- Considere um programa que precisa contar quantas vezes cada item aparece em uma lista. Qual técnica de programação seria…
🔎 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
