Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre a resolução

Boa tarde! Tenho uma pequena dúvida. Eu resolvi o exercicio, porém ao invés de utilizar if (item[1]['ano'] > 2000): eu usei (item[-1] ...). Ficando então o código a seguir: Essa forma que expressei o código ainda está correta ?

for item in dados.items():
            if (item[-1]['ano'] > 2000):
                    print (item[0])
1 resposta
solução!

Oii Lucas, tudo bem contigo?

Nesse caso, está correta sim!

Veja que dados.items() retorna um iterador de tuplas, onde cada tupla tem como primeiro item a chave do dicionário e como segundo o respectivo valor:

for item in dados.items():
    print(item)

Resultado:

('Crossfox', {'valor': 72000, 'ano': 2005})
('DS5', {'valor': 125000, 'ano': 2015})
('Fusca', {'valor': 150000, 'ano': 1976})
('Jetta', {'valor': 88000, 'ano': 2010})
('Passat', {'valor': 106000, 'ano': 1998})

Sendo assim, temos várias tuplas com 2 elementos em cada, onde o primeiro elemento item[0] está armazenando as chaves do nosso dicionário e o segundo (e último) item[1] está armazenando os valores do dicionário. Como os valores do dicionário estão armazenados sempre na última posição dessas tuplas, eles também podem ser acessados por item[-1] e por isso a sua solução também está correta.

Apenas para conferir isso, vamos percorrer dados.items() utilizando um laço e visualizar os elementos em item[1] e em item[-1] para termos certeza que sempre serão mostrados os valores do dicionário:

Visualizando item[1] :

for item in dados.items():
    print(item[1])

Resultado:

{'valor': 72000, 'ano': 2005}
{'valor': 125000, 'ano': 2015}
{'valor': 150000, 'ano': 1976}
{'valor': 88000, 'ano': 2010}
{'valor': 106000, 'ano': 1998}

Visualizando item[-1] :

for item in dados.items():
    print(item[-1])

Resultado:

{'valor': 72000, 'ano': 2005}
{'valor': 125000, 'ano': 2015}
{'valor': 150000, 'ano': 1976}
{'valor': 88000, 'ano': 2010}
{'valor': 106000, 'ano': 1998}

Podemos perceber que temos o mesmo resultado, e isso mostra que tanto a sua solução quanto a mostrada pela alternativa do exercício estão corretas. Parabéns pela dedicação ^^

Qualquer dúvida estou por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software