Olá, Reynaldo. Como vai?
Sua sugestão de resolução ficou excelente! O uso de um dicionário (ficha_aluno) para agrupar as informações de cada estudante e depois guardá-lo dentro de uma lista (lista_de_alunos) demonstra um ótimo entendimento de como estruturar dados em Python. Essa combinação de listas com dicionários é amplamente utilizada no dia a dia da ciência de dados.
Gostei muito também de como você usou os métodos .strip() e .upper() para tratar o texto recebido pelo usuário, evitando problemas com espaços em branco e letras maiúsculas/minúsculas diferentes. O uso do output.clear() do Google Colab para limpar a tela também foi uma ótima sacada para melhorar a experiência visual.
Para complementar ainda mais a sua sugestão e agregar valor ao seu código, trago dois pontos interessantes sobre boas práticas e recursos do Python:
1. Ajuste na indentação e quebra de linha
No trecho inicial do for, a declaração acabou ficando na mesma linha que a criação da lista. Para que o Python interprete o laço de repetição corretamente, é importante deixar o for na linha seguinte e indentar os comandos que estão dentro dele:
lista_de_alunos = []
for i in range(1, 3):
nome = str(input('digite o nome do aluno: '))
# ... resto do código indentado
2. Formatação da Média
Quando trabalhamos com divisões em Python, o resultado pode gerar muitas casas decimais (por exemplo, uma média como 7.333333...). Para garantir que a lista final exiba os valores de maneira limpa, você pode formatar a exibição da média para exibir apenas uma ou duas casas após o ponto, utilizando a formatação : .1f ou : .2f dentro da f-string:
print(f"Aluno: {aluno['nome']} | Média: {aluno['media']:.1f}")
Parabéns por compartilhar a sua solução com a comunidade do fórum! Esse tipo de troca enriquece muito o aprendizado de todos que estão fazendo o curso.
Espero que possa ter lhe ajudado!