Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Python para Data Science: Questão 7 (Dúvida)

Olá! Tudo bem?

Estou estudando este curso, e fiquei com uma dúvida na questão 7:

Dado a lista a seguir:

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

Inserindo o código abaixo (Dado como correto nas alternativas declaradas do exercicio) ** def km_media(dataset, ano_atual): result = {} for item in dataset.items(): media = item[1]['km'] / (ano_atual - item[1]['ano']) result.update({item[0]:media}) return result**

E finalmente, passando os valores das variaveis para obter o retorno:

km_media(dados, 2019)

o meu retorno, só traz a primeira linha da minha lista:

{'Crossfox': 2500.0}

sinceramente, eu nao entendi o pq, nao estou fazendo nenhum filtro....

vocês podem me ajudar a entender?

obrigado

2 respostas
solução!

Olá, Ayrton! Como vai?

O problema, pode está na indentação do seu código, mais especificamente na linha onde você retorna o resultado. Como o return está dentro do loop for, a função termina na primeira iteração do loop, retornando apenas o primeiro item do seu dicionário.

Peço que teste algo semelhante e veja se funciona:

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

Aqui, o return está fora do loop for, então a função só termina depois de processar todos os itens do dicionário. Assim, o resultado será um dicionário com a km média para cada carro.

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito Obrigado! Era isto mesmo!