Ir para conteúdo
Fórum Script Brasil
  • 0

Exercício de dicionários


gabriel54

Pergunta

Leia e armazene em um dicionário o nome, a idade e o número do telefone de seus contatos, sendo que a chave deve ser o nome. Ao digitar uma string vazia para o nome, o programa interrompe a leitura e se encerra. Apresente na tela os dados lidos em ordem alfabética pelo nome dos contatos. Uma possível solução de ordenar alfabeticamente é usar o método sort. Em seguida, armazene os contatos em outros dois dicionários, utilizando como critério a idade: menores de 18 anos em um e os maiores em outro dicionário, eliminando o original. Apresente na tela os dois dicionários resultantes da separação. Imprima na tela um teste do seu programa usando como primeiro cadastro o seu nome, como telefone o seu RU, e como idade os dois últimos dígitos do seu RU.

O que foi desenvolvido até então:

lista = []
list(lista)
dados = dict()
dadosm18 = dict()
lista18 = []
dados['nome'] = str(input('Nome: ')).title()
while dados['nome'] != '':
    dados['idade'] = int(input('Idade: '))
    dados['telefone'] = int(input('Telefone: '))
    lista.append(dados.copy())
    dados['nome'] = str(input('Nome: ')).title()
print(f'{"NOME":<15}{"IDADE":<10}{"TELEFONE":<10}')
for contatos in lista:
    print(f'{contatos["nome"]:<15}{contatos["idade"]:<10}{contatos["telefone"]:<10}')
if dados['idade'] < 18:
    lista18.append(dados.copy())
    print('-='*60)
    print('LISTA TELEFÔNICA COM DE MAIOR')
    print(f'{"NOME":<15}{"IDADE":<10}{"TELEFONE":<10}')
    for contatos1 in lista18:
        print(f'{contatos1["nome"]:<15}{contatos1["idade"]:<10}{contatos1["telefone"]:<10}')

Só não estou conseguindo excluir os dados da primeira tabela e transferi-los para os outros dois dicionários, separando por maiores de 18 e menores e como ordenar por ordem alfabética.  Se alguém souber de uma maneira para me ajudar a desenvolver eu fico agradecido.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

para deletar o dicionario

a = dict()
del a

para "apagar" os dados do dicionario

a = dict()
a['a'] = 1
a = dict()

passando valor de um para o outro

>>> a={'a':1, 'b':2}
>>> b = {x:y for x,y in a.items() if y>1}
>>> b
{'b': 2}

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 31/03/2021 em 22:23, ArteEN disse:

para deletar o dicionario


a = dict()
del a

para "apagar" os dados do dicionario


a = dict()
a['a'] = 1
a = dict()

passando valor de um para o outro


>>> a={'a':1, 'b':2}
>>> b = {x:y for x,y in a.items() if y>1}
>>> b
{'b': 2}

 

consegui deste jeito:

lista = []
dados = dict()
lista18 = []
lista_de_menor = []
dados['nome'] = str(input('Nome: ')).title()
while dados['nome'] != '':
    dados['idade'] = int(input('Idade: '))
    dados['telefone'] = int(input('Telefone: '))
    lista.append(dados.copy())
    dados['nome'] = str(input('Nome: ')).title()
print('-=' * 25)
print('\033[1;35mGERAL\033[0;0m')
print(f'\033[34m{"NOME":<25}{"IDADE":<10}{"TELEFONE":<10}\033[0;0m')
for contatos in lista:
    print(f'{contatos["nome"]:<25}{contatos["idade"]:<10}{contatos["telefone"]:<10}')
    if contatos['idade'] >= 18:
        lista18.append(contatos.copy())
    if contatos['idade'] < 18:
        lista_de_menor.append(contatos.copy())
print('-='*25)
print('\033[1;35mLISTA TELEFÔNICA COM MAIORES DE IDADE\033[0;0m')
print(f'\033[34m{"NOME":<25}{"IDADE":<10}{"TELEFONE":<10}\033[0;0m')
for contatos1 in lista18:
    print(f'{contatos1["nome"]:<25}{contatos1["idade"]:<10}{contatos1["telefone"]:<10}')
print('-='*25)
print('\033[1;35mLISTA TELEFÔNICA COM MENORES DE IDADE\033[0;0m')
print(f'\033[34m{"NOME":<25}{"IDADE":<10}{"TELEFONE":<10}\033[0;0m')
for contatos1 in lista_de_menor:
    print(f'{contatos1["nome"]:<25}{contatos1["idade"]:<10}{contatos1["telefone"]:<10}')





Sabe como colocar em ordem alfabética?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...