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

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 0 não é gerado pela função range(10,0,-1) nem é uma chave ou valor no dicionário x, nem um elemento na lista y.
  • (B) Incorreta: Esta opção está incorreta pelo mesmo motivo da alternativa A; o valor 0 não aparece nos resultados intermediários.
  • (C) Incorreta: Esta opção está incorreta porque, embora x[1] seja 1, os valores y[0] e y[1] não são 0 e 1 respectivamente. A lista y começa com 1.
  • (D) Incorreta: Esta opção está incorreta porque o valor 0 não está presente nos resultados intermediários que compõem z.
  • (E) Correta:
    1. x = {i: i ** 2 for i in range(10,0,-1)}: A função range(10,0,-1) gera os números 10, 9, 8, ..., 1. O dicionário x será {10: 100, 9: 81, ..., 1: 1}.
    2. y = sorted(x): A função sorted() aplicada a um dicionário retorna uma lista das suas chaves em ordem crescente. As chaves de x são 10, 9, ..., 1. Ordenadas, elas se tornam [1, 2, 3, ..., 10]. Portanto, y é [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
    3. z = (x[1], y[0], y[1]):
      • x[1] acessa o valor associado à chave 1 no dicionário x. Como 1 ** 2 é 1, x[1] é 1.
      • y[0] acessa o primeiro elemento (índice 0) da lista y. O primeiro elemento de y é 1.
      • y[1] acessa o segundo elemento (índice 1) da lista y. O segundo elemento de y é 2.
    4. Assim, z recebe o valor (1, 1, 2). A armadilha mais comum seria confundir o comportamento de range(stop) (que exclui stop) e assumir que 0 faria parte das chaves ou da lista y, ou que sorted() ordenaria os valores ou manteria a ordem inversa do range.

Fonte: FGV EPE 2024 Analista de Pesquisa Energética - Recursos Energéticos (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho