1
resposta

Sobre a função def km_media

Dentro do for da função km_media, existe uma linha com

result.update{item[0] : item[1]

Essa linha só é necessária porque está dentro de uma função definida? Se fosse uma linha solta, poderia ser apenas assim?:

for item in dados.items():
        media = item[1]['km'] / (ano_atual - item[1]['ano'])
        item[1].update({ 'km_media': media })
        result.update({ item[0]: item[1] })
1 resposta

Olá Arthur, tudo bem? Espero que sim!

A linha result.update({ item[0]: item[1] }) seria necessária independentemente se fosse uma função ou não.

O bloco de código sem a função seria o que você informou, mas seria necessário definir o dicionário result = {} e o ano atual.

A função ainda seria interessante caso fossemos calcular para valores diferentes de ano_atual sem a necessidade de copiar o bloco novamente.

Portanto o código completo sem a função seria o seguinte, utilizando o ano atual igual ao do exemplo da atividade:

ano_atual = 2019
result = {}
for item in dados.items():
        media = item[1]['km'] / (ano_atual - item[1]['ano'])
        item[1].update({ 'km_media': media })
        result.update({ item[0]: item[1] })

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!