Olá, João Vitor. Tudo bem?
Antes de mais nada, para acompanharmos o passo a passo, vamos criar o dicionário dados
:
dados = {
'Crossfox': {'km': 35000, 'ano': 2005},
'DS5': {'km': 17000, 'ano': 2015},
'Fusca': {'km': 130000, 'ano': 1979},
'Jetta': {'km': 56000, 'ano': 2011},
'Passat': {'km': 62000, 'ano': 1999}
}
Com isso, agora temos o dicionário dados
que, por sua vez, contém outros dicionários, os carros.
Para que possamos entender o que está contido em cada índice do dicionário dados
, podemos verificar acessando os índices um de cada vez.
Para isso, podemos fazer uso do for
utilizado na função km_media()
.
Primeiramente, vamos acessar os valores contidos no índice 0, da seguinte forma:
for item in dados.items():
print(item[0])
Saída:
Crossfox
DS5
Fusca
Jetta
Passat
Podemos ver que os valores contidos no índice 0 são os nomes dos carros.
Seguindo a mesma ideia, vamos verificar o que tem no índice 1:
for item in dados.items():
print(item[1])
Saída:
{'km': 35000, 'ano': 2005, 'km_media': 2500.0}
{'km': 17000, 'ano': 2015, 'km_media': 4250.0}
{'km': 130000, 'ano': 1979, 'km_media': 3250.0}
{'km': 56000, 'ano': 2011, 'km_media': 7000.0}
{'km': 62000, 'ano': 1999, 'km_media': 3100.0}
Como você pode ver, temos os dicionários referentes a cada carro.
Beleza, agora que sabemos com o que estamos trabalhando em cada índice, vamos às suas perguntas.
1) Por que começamos do Item[1] e não do Item[0]?
Como vimos, no item[1], temos os dicionários de cada carro, ou seja, para que possamos acessar a quilometragem de cada carro, temos que acessar seu dicionário primeiro. Por isso temos item[1]['km'], pois estamos acessando o dicionário do carro, e queremos acessar, especificamente, o valor contido na chave km
, ou seja, a quilometragem do carro.
Resumindo: o item[1] é utilizado pois precisamos acessar os valores dos carros, e estes valores estão contidos nos seus respectivos dicionários. São nos seus dicionários que encontramos suas quilometragens e seus anos.
2) Por que o result.update vai do item[0] até o item[1]?
Para entendemos o porquê de ser feito assim, vamos lembrar o que temos em cada índice.
No índice 0, temos os nomes dos carros. No índice 1, temos os dicionários dos carros.
Olhando novamente o update, temos o seguinte: result.update({ item[0]: item[1] })
.
Podemos ver que estamos passando um dicionário: {item[0]: item[1]}.
Se formos exibir este dicionário, teremos o seguinte (irei utilizar como exemplo o Crossfox):
- No item[0], teríamos 'Crossfox'.
- No item[1], teríamos o seu dicionário atualizado com o valor da quilometragem média:
{'km': 35000, 'ano': 2005, 'km_media': 2500.0}
.
Para melhor visualização, podemos ver o dicionário atualizado a seguir:
{'Crossfox': {'km': 35000, 'ano': 2005, 'km_media': 2500.0}}
Lembrando que isso seria apenas para o Crossfox, sem contar os demais carros.
Espero ter ajudado, João Vitor. Se tiver mais alguma dúvida, estou à disposição. Bons estudos =)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!