cadastro["Nome"] = [nome[0] for nome in lista_completa[0]]
cadastro
é bem mais fácil de ler que:
cadastro["Estudante"] = [ lista_completa[0][i][0] for i in range(len(lista_completa))]
cadastro
cadastro["Nome"] = [nome[0] for nome in lista_completa[0]]
cadastro
é bem mais fácil de ler que:
cadastro["Estudante"] = [ lista_completa[0][i][0] for i in range(len(lista_completa))]
cadastro
Olá, Marcelo! Como vai?
Excelente observação! Como diz o Zen do Python: "Readability counts" (A legibilidade conta).
Sua sugestão toca em um ponto fundamental da evolução de quem programa em Python: a transição do pensamento focado em índices (típico de quem vem de linguagens como C ou Java) para o pensamento focado em iteração direta sobre objetos.
for nome in lista_completa[0], você remove a necessidade de chamar as funções range() e len(), além de eliminar os colchetes extras de indexação [i][0].range(len()), é fácil cometer o erro de "atropelar" o índice ou referenciar a dimensão errada da lista. Na iteração direta, o Python cuida disso para você.nome já explica o que está sendo extraído, enquanto o i é apenas um contador genérico.Apenas para garantir que o código funcione exatamente como o esperado no contexto do curso:
Na sua segunda linha de exemplo (a que você considerou difícil de ler), você usou a chave "Estudante". Se a intenção for extrair apenas os nomes, a estrutura da lista_completa precisa ser respeitada.
Se lista_completa[0] for uma lista de listas/tuplas onde o nome é o primeiro elemento, seu código está perfeito:
# Jeito Pythonico (o seu)
cadastro["Nome"] = [item[0] for item in lista_completa[0]]
Se você quiser deixar ainda mais claro, pode usar o desempacotamento dentro da list comprehension:
# Se cada item tiver (Nome, Media)
cadastro["Nome"] = [nome for nome, media in lista_completa[0]]
Isso é o que chamamos de código explícito, que é quase uma frase em inglês.
Você já percebeu como as List Comprehensions do Python ajudam a evitar que a gente crie várias linhas de código apenas para "filtrar" ou "limpar" dados?
Espero que possa ter lhe ajudado!