Questão nº 29
Questão de Economia de Energia · FGV EPE 2024 (nº 29)
Considere o código a seguir, escrito na linguagem de programação Python (versão 3.11.3).
<1> x = {i: i ** 2 for i in range(10,0,-1)}
<2> y = sorted(x)
<3> z = (x[1], y[0], y[1])
Assinale a opção que indica o valor que z recebe na linha <3>.
- A(0, 0, 1)
- B(0, 1, 2)
- C(1, 0, 1)
- D(1, 0, 2)
- E(1, 1, 2) (alternativa correta)
Resposta comentada
Gabarito Alternativa E
O conceito-chave aqui é como as estruturas de dados de dicionário e lista funcionam em Python, e como a função sorted() se comporta ao ser aplicada a um dicionário. Um dicionário armazena pares de chave-valor, enquanto uma lista é uma sequência ordenada de itens acessados por índice.
(A) Incorreta: O valor x[1] é 1, não 0. O dicionário x não contém a chave 0.
(B) Incorreta: O valor x[1] é 1, não 0.
(C) Incorreta: O valor y[0] é 1, não 0. A lista y começa com o número 1.
(D) Incorreta: O valor y[0] é 1, não 0.
(E) Correta:
- Linha <1>:
x = {i: i ** 2 for i in range(10,0,-1)}- A função
range(10,0,-1)gera os números10, 9, 8, ..., 1. - Para cada número
i, ele se torna uma chave ei ** 2(i ao quadrado) se torna o valor. - Portanto, o dicionário
xserá:{10: 100, 9: 81, ..., 1: 1}. - Assim,
x[1](o valor associado à chave1) é1 ** 2, que é1.
- A função
- Linha <2>:
y = sorted(x)- Quando a função
sorted()é aplicada a um dicionário, ela retorna uma lista contendo as chaves do dicionário, ordenadas em ordem crescente. - As chaves de
xsão10, 9, ..., 1. - Ao ordenar essas chaves, a lista
yserá:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. - Assim,
y[0](o elemento no índice 0 da listay) é1. - E
y[1](o elemento no índice 1 da listay) é2.
- Quando a função
- Linha <3>:
z = (x[1], y[0], y[1])- Substituindo os valores encontrados:
z = (1, 1, 2). - Armadilha da banca: O distrator mais tentador seria se o aluno pensasse que
sorted(x)ordenaria os valores do dicionário ou retornaria pares chave-valor. No entanto,sorted()em um dicionário ordena apenas suas chaves. Além disso, alguns podem confundir a chave1com o índice0de uma lista, ou esperar quex[1]fosse0por algum motivo.
- Substituindo os valores encontrados:
Fonte: FGV EPE 2024 Analista de Pesquisa Energética - Economia de Energia (Caderno Tipo 1). Reproduzida para fins de estudo.