1
resposta

[Projeto] Praticando Dict comprehension

O código abaixo foi feito para gerar a mesma lista_completa (da lição) com as colunas: ID, Nome, Nota e Situação:

lista_completa = [[('João', 'J720'), ('Maria', 'M205'), ('José', 'J371'), ('Cláudia', 'C546'), ('Ana', 'A347')],
[[8.0, 9.0, 10.0], [9.0, 7.0, 6.0], [3.4, 7.0, 7.0], [5.5, 6.6, 8.0], [6.0, 10.0, 9.5]],
[9.0, 7.3, 5.8, 6.7, 8.5],
['Aprovado', 'Aprovado', 'Reprovado', 'Aprovado', 'Aprovado']]

coluna = ["ID", "Nome", "Nota", "Situação"]

cadastro = {
coluna[i]: ([x[1] for x in lista_completa[0]] if coluna[i] == "ID" else [x[0] for x in lista_completa[0]] if coluna[i] == "Nome" else lista_completa[i-1]) for i in range(len(coluna))
}

print(cadastro)

1 resposta

Oi, Paulo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você utilizou bem o dict comprehension junto com operadores condicionais para montar o dicionário de maneira dinâmica. Seu raciocínio ficou bem interessante ao separar os dados de ID e Nome diretamente das tuplas, mantendo as demais listas organizadas com base no índice. Isso mostra uma boa prática no uso de estruturas de dados em Python.

Uma dica interessante para o futuro é explorar a função zip(). Veja este exemplo:


colunas = ["ID", "Nome"]

dados = list(zip(*lista_completa[0]))

cadastro = {
    "ID": dados[1],
    "Nome": dados[0]
}

print(cadastro)

Neste exemplo, o zip(*lista_completa[0]) reorganiza as tuplas separando nomes e IDs em listas diferentes, deixando o código mais limpo e reutilizável.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!