1
resposta

[Dúvida] Dúvida no entendimento da solução

Boa tarde!
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Não consegui entender o raciocínio e não consigo montar esse entendimento como solução de um novo caso.

1 resposta

Ei! Tudo bem, Lidiane?

Agradeço por aguardar o nosso retorno.

Entendo que pode ser confuso e agradeço por trazer ao fórum sua dúvida, pois pode ser de muitos que estão estudando.

A lógica aqui é percorrer a lista de livros e, para cada livro, criar um novo dicionário atualizado. Por isso existe o livro_temp = {}, ele vai armazenar a versão modificada daquele livro.

Depois, o .items() entra pra permitir que você percorra chave e valor ao mesmo tempo (k e v). Então, a cada item do dicionário:

  • se a chave (k) for "categoria", ele pega o valor abreviado (v, como "FIC") e busca o nome completo no dicionário categorias
  • se não for "categoria", ele simplesmente copia o valor original

No final desse processo, você tem um “livro novo” com a categoria traduzida, e adiciona ele na lista livros_atualizados.

O padrão aqui que você pode reaproveitar é:
iterar → verificar uma condição → transformar só o que precisa → montar um novo resultado sem alterar o original.

Comentei o código a cada linha para ficar mais fluido:

# Dicionário que faz a tradução das abreviações para o nome completo
categorias = {
    "FIC": "Ficção",
    "BIO": "Biografia",
    "HIS": "História",
    "SCI": "Ciência",
    "PHI": "Filosofia"
}

# Lista onde vamos guardar os livros já atualizados
livros_atualizados = []

# Percorre cada livro da lista original
for livro in lista_livros:
    
    # Cria um novo dicionário vazio (para não alterar o original)
    livro_temp = {}
    
    # Percorre cada chave (k) e valor (v) do dicionário livro
    for k, v in livro.items():
        
        # Se a chave for "categoria", precisamos substituir o valor
        if k == "categoria":
            # Usa o dicionário categorias para buscar o nome completo
            livro_temp[k] = categorias[v]
        
        else:
            # Para as outras chaves, mantém o valor original
            livro_temp[k] = v
    
    # Adiciona o novo livro (já atualizado) na lista final
    livros_atualizados.append(livro_temp)

Com o tempo, essa lógica de "filtro e substituição" se torna automática na sua programação.

Continue se dedicando aos estudos e qualquer dúvida, compartilhe conosco.

Bons estudos e até mais!