Adc item em um lista/dicionário

olá pessoal td bem? alguem por gentleza pode me ajudar?

no menu 2

Não coonsigo salvar o cadastro do aluno em “inclusao” em listaEstudante, para ser exibido na opçao 2 “listagem de estudantes.”

na opçao 3 “atualizar cadastro de estudante” o msm tbm nao salva o cadastro atualizado na listaEstudante

em excluir tbm enfrento problemas, na opçao “4 excluir cadastro” o progrma exclui o primeiro item da lista, nao importa o que eu digite, deleta, mas deleta errado. desde ja muito obrigado.

listaEstudantes = [
{“Código”: 0, “Nome”: “LUCAS”, “CPF”: “456.159.951-56”},
{“Código”: 1, “Nome”: “PEDRO”, “CPF”: “753.852.123-78”}
]
opção = 1
while opção != 9:
print(‘\n\n***** MENU PRINCIPAL \n’)
print(‘[ 1 ] Gerenciar Estudantes.’)
print(‘[ 2 ] Gerenciar Profesores.’)
print(‘[ 3 ] Gerenciar Disceplinas.’)
print(‘[ 4 ] Gerenciar Turmas.’)
print(‘[ 5 ] Gerenciar matriculas.’)
print(‘[ 9 ] Sair.’)
opção = int(input(’
Escolha uma das opções de 1 a 9:’))

opçãocadastral = " "
if opção == 1:
    opçãocadastral = "ESTUDANTES"
elif opção == 2:
    opçãocadastral = "PROFESSORES"
    print('===== PROFESSORES EM DESENVOLVIMENTO =====')
    continue
elif opção == 3:
    opçãocadastral = "DISCIPLINAS"
    print('===== DISCIPLINAS EM DESENVOLVIMENTO =====')
    continue
elif opção == 4:
    opçãocadastral = "TURMAS"
    print('===== TURMAS EM DESENVOLVIMENTO =====')
    continue
elif opção == 5:
    opçãocadastral = "MATRÍCULAS"
    print('===== MATRÍCULAS EM DESENVOLVIMENTO =====')
    continue
elif opção == 9:
    print('===== Programa Finalizado =====')
    break
else:
    print('Opção inválida. Escolha entre as opções 1, 4 e 9 (Somente números)')
    input('Pressione ENTER para continuar:')
    continue
dados = []
ação = 1
while ação != 9:
    print("\n\n***** ["+opçãocadastral+"] MENU DE OPERAÇÕES *****\n")
    print('[ 1 ] Incluir Estudante.')
    print('[ 2 ] Listar Estudantes.')
    print('[ 3 ] Atualizar Cadastro de Estudante.')
    print('[ 4 ] Excluir Cadastro de Estudante.')
    print('[ 9 ] Voltar ao menu principal.')
    ação = int(input('***** Escolha uma das opções de 1, 4 e 9:'))

    if ação == 1:
        print('===== \033[30;42mINCLUSÃO\033[m =====')
        codigo = str(input('Informe o código do estudante: '))
        nome = str(input('Informe o nome do estudante: '))
        cpf = str(input('Informe o CPF do estudante: '))
        print(f'Código do aluno:{codigo} | Nome do aluno:{nome} | CPF do aluno:{cpf}.')
        listaEstudantes.append(dados)
        input('Pressione ENTER para continuar')
    elif ação == 2:
        print('===== \033[30;42mLISTAGEM DE ALUNOS\033[m =====')
        print(listaEstudantes)
        input('Pressione ENTER para continuar:')
    elif ação == 3:
        print('===== \033[0;30;41mAtualizar Cadastro de Estudante\033[m =====')
        print(listaEstudantes)
        input('Qual estudante você deseja atualizar o cadastro? ')
        codigo = str(input('Informe o código do estudante: '))
        nome = str(input('Informe o nome do estudante: '))
        cpf = str(input('Informe o CPF do estudante: '))
        print(f'Código do aluno:{codigo} | Nome do aluno:{nome} | CPF do aluno:{cpf}.')
        input('Pressione ENTER para continuar:')
    elif ação == 4:
        print('===== \033[0;30;41mExcluir Cadastro de Estudante.\033[m =====')
        print(listaEstudantes)
        input('Qual estudante você deseja excluir? ')
        listaEstudantes.pop()
    elif ação == 9:
        print('===== VOLTANDO AO MENU PRINCIPAL =====')
    else:
        print('Opção inválida. Escolha entre as opções 1, 4 e 9 (Somente números)')
        input('Pressione ENTER para continuar:')
        continue

Eu fiz um exemplo simples e funcional.
Da uma olhada e pega a lógica para o seu.

import java.util.ArrayList;
import java.util.Scanner;

public class Estudante {
	private int codigo;
	private String nome;
	private String cpf;

	public Estudante(int codigo, String nome, String cpf) {
		this.codigo = codigo;
		this.nome = nome;
		this.cpf = cpf;
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	@Override
	public String toString() {
		return "Estudante [codigo=" + codigo + ", nome=" + nome + ", cpf=" + cpf + "]";
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		ArrayList<Estudante> estudantes = new ArrayList<Estudante>();

		int opcao = 0;

		while (opcao != 9) {
			System.out.println("\nSelecione uma opção:");
			System.out.println("1) Incluir Estudante");
			System.out.println("2) Listar Estudantes");
			System.out.println("3) Atualizar Cadastro de Estudante");
			System.out.println("4) Excluir Cadastro de Estudante");
			System.out.println("9) Finalizar execução");

			opcao = scanner.nextInt();
			scanner.nextLine(); // limpa o buffer do scanner

			switch (opcao) {
			case 1:
				System.out.println("\nIncluir Estudante:");
				System.out.print("Código: ");
				int codigo = scanner.nextInt();
				scanner.nextLine(); // limpa o buffer do scanner
				System.out.print("Nome: ");
				String nome = scanner.nextLine();
				System.out.print("CPF: ");
				String cpf = scanner.nextLine();

				Estudante estudante = new Estudante(codigo, nome, cpf);
				estudantes.add(estudante);
				System.out.println("Estudante adicionado com sucesso!");
				break;

			case 2:
				System.out.println("\nListar Estudantes:");
				for (Estudante e : estudantes) {
					System.out.println(e);
				}
				break;

			case 3:
				System.out.println("\nAtualizar Cadastro de Estudante:");
				System.out.print("Digite o código do estudante que deseja atualizar: ");
				int codigoAtualizar = scanner.nextInt();
				scanner.nextLine(); // limpa o buffer do scanner

				boolean encontrado = false;
				for (Estudante e : estudantes) {
					if (e.getCodigo() == codigoAtualizar) {
						encontrado = true;
						System.out.print("Nome (" + e.getNome() + "): ");
						String novoNome = scanner.nextLine();
						System.out.print("CPF (" + e.getCpf() + "): ");
						String novoCpf = scanner.nextLine();

						e.setNome(novoNome);
						e.setCpf(novoCpf);
						System.out.println("Cadastro atualizado com sucesso!");
						break;
					}
				}

				if (!encontrado) {
					System.out.println("Estudante não encontrado!");
				}
				break;

			case 4:
				System.out.println("Digite o código do estudante que deseja excluir: ");
				int codigoExclusao = scanner.nextInt();

				// variável para armazenar o estudante a ser excluído
				Estudante estudanteExclusao = null;

				// percorre a lista de estudantes e busca o estudante com o código informado
				for (Estudante e : estudantes) {
					if (e.getCodigo() == codigoExclusao) {
						estudanteExclusao = e;
						break;
					}
				}

				// verifica se o estudante foi encontrado
				if (estudanteExclusao != null) {
					estudantes.remove(estudanteExclusao);
					System.out.println("Estudante excluído com sucesso!");
				} else {
					System.out.println("Não foi possível encontrar um estudante com o código informado.");
				}

				break;

			case 9:
				System.out.println("\nFinalizando execução com sucesso! ");
				System.exit(0);
				break;
			}
		}
	}
}