Olá, Gabriel! Tudo bem com você?
Vamos entender primeiro o que temos dentro do laço de repetição for item in dataset.items()
. O método .items()
de um dicionário retorna um objeto de exibição que exibe uma lista de um par de tuplas de um determinado dicionário (chave, valor). Ao fazer a impressão de forma individual o que temos em item é:
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}
}
for item in dados.items():
print(item)
Saída:
('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})
Ou seja, temos uma tupla. Uma tupla pode ser acessada por índices, então quando imprimimos somente item[1]
o que temos é o seguinte:
{'km': 35000, 'ano': 2005}
{'km': 17000, 'ano': 2015}
{'km': 130000, 'ano': 1979}
{'km': 56000, 'ano': 2011}
{'km': 62000, 'ano': 1999}
Agora o que temos é um dicionário que podemos acessar com suas respectivas chaves. Por isso que temos item[1]['ano'] no código.
# Aqui estamos calculando a média da quilometragem de acordo com o ano atual
media = item[1]['km'] / (ano_atual - item[1]['ano'])
# Aqui estamos adicionando uma nova chave km_media e seu respectivo valor.
item[1].update({ 'km_media': media })
# Aqui estamos atualizando o dicionário result criado anteriormente, com o nome do carro e o dicionário criado atualizado na linha anterior.
result.update({ item[0]: item[1]})
Qualquer dúvida estou à disposição.
Bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!