Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025
Programação›Linguagens de programação
Código
ce194797
Banca
CESPE / CEBRASPE
Órgão
ANM
Ano
2025
Nível
Superior
Cargo
Especialista em Recursos Minerais - Especialidade: Geologia, Geografia, Geofísica, Engenharia de Minas, Agrônoma, Florestal, Civil, Ambiental, Arquitetura ou Tecnologia da Informação
Julgue o item a seguir, relativo ao código Python precedente.O método keys() retornará uma lista contendo todas as chaves presentes no dicionário dados.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Python: dicionários e o método keys()
Gabarito: letra E (ERRADO). A afirmação está incorreta porque, em Python, o método keys() de um dicionário retorna um objeto do tipo dict_keys (uma visão das chaves), e não uma lista. Para obter uma lista, seria necessário converter explicitamente com list(dados.keys()), como o próprio código do enunciado faz na linha chaves = list(dados.keys()).
O dicionário é uma estrutura de dados que associa chaves a valores, permitindo acesso rápido por chave. No código apresentado, o dicionário dados é criado com três pares: "nome": "Carlos", "idade": 30 e "cidade": "Rio". Em seguida, o valor de "idade" é alterado para 31 e a chave "cidade" é removida com pop(). Após essas operações, o dicionário contém apenas "nome" e "idade".
O método keys() é um dos métodos de visualização (views) de dicionários, junto com values() e items(). Esses métodos retornam objetos que refletem dinamicamente as mudanças no dicionário — se o dicionário for modificado, a visão também muda. Eles não são listas, mas podem ser convertidos em listas com list(). Essa distinção é crucial e frequentemente cobrada em provas.
Na prática, se você executar type(dados.keys()), o resultado será <class 'dict_keys'>, não <class 'list'>. Para obter uma lista, usa-se list(dados.keys()), que cria uma nova lista com as chaves. No código do enunciado, a linha chaves = list(dados.keys()) faz exatamente essa conversão, mas a afirmação do item diz que o método keys() retornará uma lista — o que é falso.
A pegadinha aqui é a banca explorar a confusão entre o que o método retorna nativamente e o que se obtém após conversão explícita. Muitos candidatos, ao verem list(dados.keys()), podem pensar que keys() já retorna uma lista, mas não é o caso. O método retorna uma visão, e a conversão é necessária para obter uma lista.
Guarde a distinção: keys() → dict_keys (visão dinâmica) vs. list(dados.keys()) → list (cópia estática). É exatamente nessa fronteira que a questão se decide.
Métodos de visualização (views): keys() (Retorna dict_keys, Visão dinâmica (reflete mudanças)); values() (Retorna dict_values); items() (Retorna dict_items); Conversão para lista (list(dados.keys()), Cópia estática)
Alternativa C — ❌ Incorreta
A alternativa C afirma que o método keys() retornará uma lista contendo todas as chaves. Isso está errado porque, em Python, keys() retorna um objeto do tipo dict_keys, que é uma visão (view) das chaves do dicionário, não uma lista. Para obter uma lista, é necessário usar list(dados.keys()), como o próprio código faz. A alternativa confunde o tipo de retorno nativo do método com o resultado após conversão explícita.
PEGA ESSA DICA!
Na prova, quando aparecer dicionario.keys(), lembre-se: o retorno é uma visão (dict_keys), não uma lista. Se a questão perguntar "o que retorna?", a resposta é "uma visão das chaves". Se perguntar "como obter uma lista?", a resposta é "usando list(dicionario.keys())". Essa distinção é clássica em questões de Python.