1
resposta

Criando funções def + for

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}
}
def km_media(dataset, ano_atual): 
    for item in dataset.items():
        result = item[1]['km'] / (ano_atual - item[1]['ano'])
        print(result)

Essa é a resposta, porém não entendi como funciona esse ''item[1]'', qual o valor que seria o índice 0, 1 e 2?

1 resposta

Olá Matheus, tudo bem? Espero que sim!

Desculpe pela demora em retornar.

O objeto dados é um dicionário, ao acessar o dados.items(), teremos uma lista de tuplas. Ao realizar o loop for, estaremos acessando cada uma dessas tuplas separadamente.

Nessas tuplas, teremos o primeiro element sendo a chave e o segundo elemento sendo o valor dessa chave.

Portanto a primeira tupla seria item = ('Crossfox', {'km': 35000, 'ano': 2005}), e assim por diante.

Como estamos interessados somente nos valores, fazemos item[1] para acessarmos o segundo elemento da tupla. Se quiséssemos acessar a chave, poderíamos fazer item[0].

Loop for para os itens de um dicionário em python

Você também poderia acessar mais facilmente utilizando dados.values() que pegaria somente os valores, e não precisaria se preocupar com o índice. Há ainda o atributo keys() para retornar somente as chaves do dicionário.

Loop for nos valores e chaves de um dicionário em python

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!