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

Programa que cria uma agenda utilizando um dicionário de dicionários: por que é salvo apenas o último contato inserido?

agenda = {}
contatos = {}
def InsertContato(Agenda):
            while True:
                apelido = input("Digite o apelido: ")
                nome_completo = input("Digite o nome completo: ")
                fixo = input(" Digite o telefone fixo: ")
                celular = input("Digite o telefone celular: ")
                contatos= {"apelido:": apelido,
                                "nome": nome_completo,
                               "telefone fixo": fixo,
                               "Telefone celular": celular             
                        }  
                agenda = {apelido: contatos}
                opcao = input("Deseja Continuar [S/N]:").upper()[0]
                if opcao == "N":
                    return agenda

Exemplo de saída:

agenda = {
    "Flávia" : {
        "nome": "Flávia",
        "telefone": "99234-1234",
        "email": "flavia@email.com"
        },

    }  

Gostaria de entender o porquê de o programa acima salvar na agenda, que é um dicionário de dicionário, apenas os últimos dados inseridos, ou seja, eu consigo inserir realmente apenas 1 contato, que é o último inserido.

1 resposta
solução!

Olá, Edson. Tudo bem?

Para adicionar um item em um dicionário em Python utilizamos a seguinte sintaxe:

dicionario[chave] = item

Assim, no seu código onde está escrito:

agenda = {apelido: contatos}

Basta substituir por:

agenda[apelido] = contatos

Assim, o seu código seguirá a sintaxe correta da linguagem e você conseguirá o resultado esperado, sendo capaz de inserir inúmeros contatos em sua agenda.

Da forma como você fez, a cada novo contato, o dicionário 'contatos' é copiado "por cima" do que havia anteriormente no dicionário 'agenda'.

Para se aprofundar mais sobre Dicionários em Python, eu recomendo a leitura desse artigo da Alura, que fala sobre como manipular dados em dicionários:

Espero que tenha esclarecido sua dúvida.

Abraços e bons estudos!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software