Pular para o conteúdo principal

Questão de Programação — Python — Quadrix 2025

ProgramaçãoPython
Código
qg603282
Banca
Quadrix
Órgão
SEDF
Ano
2025
Nível
Superior
Cargo
Professor de Educação Básica: Eletrônica
A respeito dos tópicos de computação, nas linguagens de programação e nos sistemas operacionais Linux, julgue o item a seguir.A seguinte função em Python sempre retornará True para qualquer dicionário d passado como argumento: def check(d): return d == {k: v for k, v in d.items()}
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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”.

Dicionários em Python: comparação e compreensão de dicionários

Gabarito: letra C (CERTO). A função check(d) compara o dicionário original d com um novo dicionário construído por uma dictionary comprehension que itera sobre os pares chave-valor de d — e, como a compreensão reconstrói exatamente os mesmos pares, os dois dicionários são sempre iguais, retornando True para qualquer dicionário válido. A afirmação está correta.

O coração da questão é entender o que a dictionary comprehension {k: v for k, v in d.items()} faz. Ela percorre cada par chave-valor do dicionário original e os reinsere em um novo dicionário. Como a iteração preserva a ordem de inserção (a partir do Python 3.7, dicionários mantêm ordem de inserção) e os pares são os mesmos, o resultado é um dicionário idêntico ao original. A comparação d == novo_dicionario verifica se ambos têm as mesmas chaves e valores — não a identidade do objeto — portanto, sempre será True.

Vamos testar com um exemplo concreto. Se d = {'a': 1, 'b': 2}, a compreensão gera {'a': 1, 'b': 2}. A comparação {'a': 1, 'b': 2} == {'a': 1, 'b': 2} retorna True. Mesmo com dicionários aninhados, como d = {'x': {'y': 3}}, a compreensão copia a referência para o dicionário interno, e a comparação de igualdade recursiva também retorna True. Não há caso em que a função retorne False para um dicionário válido.

A única ressalva seria se d não fosse um dicionário — mas o enunciado afirma explicitamente que d é um dicionário. Se d fosse None, por exemplo, d.items() levantaria um AttributeError, mas isso está fora do escopo da afirmação. A banca explora justamente a compreensão de que a dictionary comprehension reconstrói o dicionário de forma idêntica, e a comparação de igualdade em Python compara conteúdo, não identidade de objeto.

NÃO CAIA NESSA!

A banca pode tentar confundir o candidato fazendo-o pensar que a comparação == verifica se os dois objetos são o mesmo objeto na memória (identidade). Em Python, == compara igualdade de conteúdo — chaves e valores — enquanto is compara identidade de objeto. Como a compreensão cria um novo objeto com o mesmo conteúdo, == retorna True. Se a comparação fosse d is {k: v for k, v in d.items()}, aí sim retornaria False, pois seriam objetos distintos. Fique atento a essa distinção!

  1. 1d.items() itera pares
  2. 2Compreensão reconstrói pares
  3. 3== compara conteúdo
  4. 4Sempre True
LEVEL · soulevel.com.br

Alternativa C — ✅ Certo ⟵ GABARITO

A afirmação está correta. A função check(d) constrói um novo dicionário com a dictionary comprehension {k: v for k, v in d.items()}, que itera sobre todos os pares chave-valor de d e os reinsere. Como a comparação == em Python verifica igualdade de conteúdo (mesmas chaves e valores), o resultado é sempre True para qualquer dicionário d. Não há cenário em que a função retorne False para um dicionário válido.

Gabarito: letra C (CERTO).

Link permanente: /questoes/qg603282