Boa tarde!
Não consegui entender o raciocínio e não consigo montar esse entendimento como solução de um novo caso.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde!
Não consegui entender o raciocínio e não consigo montar esse entendimento como solução de um novo caso.
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:
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!