Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não entendi a solução da questão.

Não entendi bem a questão, tem como explicar ela de maneira detalhada? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Marcelo, tudo bem?

O objetivo é iterar por uma lista de dicionários que representam livros e substituir a abreviação da categoria pelo nome completo da categoria. Para isso, você precisa criar uma nova lista chamada livros_atualizados.

A solução é a C:

categorias = {"FIC": "Ficção", "BIO": "Biografia", "HIS": "História", "SCI": "Ciência", "PHI": "Filosofia"}
livros_atualizados = []

for livro in lista_livros:
    livro_temp = {}
    for k, v in livro.items():
        if k == "categoria":
            livro_temp[k] = categorias[v]
        else:
            livro_temp[k] = v
    livros_atualizados.append(livro_temp)

Irei destrinchar o laço for para ficar mais fácil de entender:

  • for livro in lista_livros : Aqui, iteramos sobre cada dicionário na lista lista_livros.

  • livro_temp = {}: Para cada livro, criamos um novo dicionário (livro_temp) onde vamos armazenar os dados atualizados.

  • for k, v in livro.items(): aqui usamos o método .items() no dicionário livro, ele retorna uma visão de todos os pares chave-valor (k, v) do livro.

  • if k == "categoria":
        livro_temp[k] = categorias[v]
    else:
        livro_temp[k] = v
    

    Se a chave for "categoria", o código acessa o dicionário categorias usando o valor da categoria (v) como chave e atribui o nome completo da categoria ao dicionário temporário livro_temp com a mesma chave "categoria". Mas, se a chave não for "categoria", o código não precisa fazer nenhuma modificação. Ele apenas copia a chave e o valor para o novo dicionário

  • livros_atualizados.append(livro_temp): Adicionamos o dicionário atualizado à lista livros_atualizados.

Portanto, na alternativa c, a lista livros_atualizados terá os dicionários com as categorias substituídas pelos nomes completos, enquanto os outros dados permanecem inalterados.

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

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