Questão nº 69

Questão de TI - Soluções · FGV EPE 2024 (nº 69)

FGV2024Analista de Gestão Corporativa - TI - SoluçõesTI - Soluções
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, a função sorted() aplicada a um dicionário (uma coleção de pares chave-valor) retorna uma lista contendo apenas as chaves desse dicionário, ordenadas em ordem crescente por padrão.

Vamos analisar o código passo a passo:

  1. x = {i: i ** 2 for i in range(10,0,-1)}:

    • range(10,0,-1) gera uma sequência de números inteiros de 10 até 1 (10, 9, 8, 7, 6, 5, 4, 3, 2, 1).
    • Esta é uma compreensão de dicionário, que cria um dicionário x onde cada número i da sequência é uma chave e seu quadrado (i ** 2) é o valor.
    • Portanto, x será: {10: 100, 9: 81, 8: 64, 7: 49, 6: 36, 5: 25, 4: 16, 3: 9, 2: 4, 1: 1}.
  2. y = sorted(x):

    • A função sorted() aplicada a um dicionário retorna uma lista das chaves do dicionário, ordenadas em ordem crescente.
    • As chaves de x são [10, 9, 8, 7, 6, 5, 4, 3, 2, 1].
    • Ao ordenar essas chaves, y se torna: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
  3. z = (x[1], y[0], y[1]):

    • Esta linha cria uma tupla z com três elementos.
    • x[1]: Acessa o valor associado à chave 1 no dicionário x. Conforme definido em x, a chave 1 tem o valor 1 ** 2, que é 1. Então, x[1] é 1.
    • y[0]: Acessa o elemento no índice 0 da lista y. A lista y é [1, 2, 3, ...], então y[0] é 1.
    • y[1]: Acessa o elemento no índice 1 da lista y. A lista y é [1, 2, 3, ...], então y[1] é 2.
    • Combinando esses valores, z recebe (1, 1, 2).

(A) Incorreta: x[1] é 1, não 0. y[0] é 1, não 0.
(B) Incorreta: x[1] é 1, não 0.
(C) Incorreta: y[0] é 1, não 0.
(D) Incorreta: y[0] é 1, não 0.
(E) Correta: O valor de x[1] é 1, o valor de y[0] é 1, e o valor de y[1] é 2. A tupla resultante é (1, 1, 2). A armadilha aqui é pensar que sorted(x) retornaria os valores do dicionário ordenados, ou que as chaves seriam mantidas na ordem decrescente do range, ou que o dicionário teria uma chave 0. Lembre-se: sorted() em um dicionário ordena sempre as chaves e em ordem crescente por padrão.

Fonte: FGV EPE 2024 Analista de Gestão Corporativa - TI - Soluções (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