Questão nº 29
Questão de Recursos Energéticos · FGV EPE 2024 (nº 29)
FGV2024Analista de Pesquisa Energética - Recursos EnergéticosRecursos Energéticos
Gabarito: Ever comentário ↓
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
Em Python, um dicionário armazena dados em pares de chave-valor, e a função sorted() aplicada a um dicionário retorna uma lista das suas chaves em ordem crescente.
- (A) Incorreta: Esta opção está incorreta porque o valor
0não é gerado pela funçãorange(10,0,-1)nem é uma chave ou valor no dicionáriox, nem um elemento na listay. - (B) Incorreta: Esta opção está incorreta pelo mesmo motivo da alternativa A; o valor
0não aparece nos resultados intermediários. - (C) Incorreta: Esta opção está incorreta porque, embora
x[1]seja1, os valoresy[0]ey[1]não são0e1respectivamente. A listaycomeça com1. - (D) Incorreta: Esta opção está incorreta porque o valor
0não está presente nos resultados intermediários que compõemz. - (E) Correta:
x = {i: i ** 2 for i in range(10,0,-1)}: A funçãorange(10,0,-1)gera os números10, 9, 8, ..., 1. O dicionárioxserá{10: 100, 9: 81, ..., 1: 1}.y = sorted(x): A funçãosorted()aplicada a um dicionário retorna uma lista das suas chaves em ordem crescente. As chaves dexsão10, 9, ..., 1. Ordenadas, elas se tornam[1, 2, 3, ..., 10]. Portanto,yé[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].z = (x[1], y[0], y[1]):x[1]acessa o valor associado à chave1no dicionáriox. Como1 ** 2é1,x[1]é1.y[0]acessa o primeiro elemento (índice 0) da listay. O primeiro elemento deyé1.y[1]acessa o segundo elemento (índice 1) da listay. O segundo elemento deyé2.
- Assim,
zrecebe o valor(1, 1, 2). A armadilha mais comum seria confundir o comportamento derange(stop)(que excluistop) e assumir que0faria parte das chaves ou da listay, ou quesorted()ordenaria os valores ou manteria a ordem inversa dorange.
Fonte: FGV EPE 2024 Analista de Pesquisa Energética - Recursos Energéticos (Caderno Tipo 1). Reproduzida para fins de estudo.