1
resposta

Dúvida referente ao "Item[1]"

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} }

#RESOLUÇÃO def km_media(dataset, ano_atual): result = {} for item in dataset.items(): media = item[1]['km'] / (ano_atual - item[1]['ano']) item[1].update({ 'km_media': media }) result.update({ item[0]: item[1] }) return result

Boa noite! O que me dá a entender é que o item filtra todos dicionários. Porém, por que começamos do Item[1] e não do Item[0], que no caso seriam as informações referentes ao carro Crossfox? E aproveitando, por que o result.update vai do item[0] até o item[1] sendo que há mais carros contidos em dados?

1 resposta

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!