Jump to content
Fórum Script Brasil
  • 0

Exercício de dicionários


Question

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 to post
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149150
    • Total Posts
      645417
×
×
  • Create New...