Observe o seguinte código escrito em Python. import json x = '{"nome":"Junior", "idade":5, "brinquedo":["Carro", "Bola", "Trem", "Barco", "Urso"]}'; y = json.loads(x) z = len(y) print(y["brinquedo"][int(z)]) O resultado da execução do código Python apresentado é:
- A)Bola
Errada, porque "Bola" esta no indice 1 da lista, e nao no indice 3.
- B)Trem
Errada, porque "Trem" esta no indice 2 da lista.
- C)Urso
Errada, porque "Urso" esta no indice 4 da lista, nao no indice calculado.
- D)Carro
Errada, porque "Carro" esta no indice 0 da lista.
- E)Barco
Certa, porque len(y) vale 3 e y["brinquedo"][3] acessa o quarto elemento da lista, que e "Barco".
Gabarito: E
Aqui a ideia central é simples: o comando json.loads(x) transforma a string JSON em um dicionario do Python. Depois disso, len(y) conta quantas chaves existem no dicionario, e nao quantos itens ha dentro da lista brinquedo. Como o objeto tem as chaves nome, idade e brinquedo, o tamanho de y e 3. A pegadinha mora justamente ai: muita gente olha para a lista e pensa que o len vai contar os elementos de brinquedo, mas ele esta sendo aplicado ao dicionario y. Em Python, os indices de lista comecam em 0, entao a lista ['Carro', 'Bola', 'Trem', 'Barco', 'Urso'] fica assim: 0, 1, 2, 3, 4. Como z vale 3, a expressao y["brinquedo"][int(z)] acessa o elemento de indice 3 da lista, que e "Barco". Por isso, o resultado impresso pelo codigo e a alternativa E. Resumo de prova: json.loads converte JSON em estrutura Python, len(dicionario) conta chaves e indice de lista em Python sempre comeca do zero. Se voce lembrar disso, a questao para de parecer uma armadilha e vira conta de feira.