1
resposta

Por que em result.update é colocado item[1]? Eu não consegui entender kk

Por que em result.update é colocado item[1]? Eu não consegui entender kk

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
1 resposta

Result é uma copia do dicionário anterior com a adição do km_media. Note que o km_media é inserido em um dicionário dentro de outro dicionário. Quando iteramos o dataset.items() temos tuplas com cada linha do dicionário inicial. Cada tupla dessas vai conter algo tipo : ('Crossfox': {'km': 35000, 'ano': 2005}) onde: item[0] se refere a 'Crossfox' e item[1] se refere ao dicionário {'km':35000, 'ano': 2005}

como queremos inserir a quilometragem média dentro desses atributos do carro (dentro do dicionário que contem a quilometragem(km) e ano) acessamos o item[1].

na linha: item[1].update({ 'km_media': media }) atualizamos apenas esse dicionário dentro de item[1] com a km_media para cada carro

e na linha:

result.update({ item[0]: item[1] }) reescrevemos todo o dataset com o nome do carro seguido do dicionário com km, ano e km_media (que é o item[1])

{'Crossfox': {'km': 35000, 'ano': 2005, 'km_media': 2500.0},
 'DS5': {'km': 17000, 'ano': 2015, 'km_media': 4250.0},
 'Fusca': {'km': 130000, 'ano': 1979, 'km_media': 3250.0},
 'Jetta': {'km': 56000, 'ano': 2011, 'km_media': 7000.0},
 'Passat': {'km': 62000, 'ano': 1999, 'km_media': 3100.0}}