-1
Before making a Phonebook containing name, phone and age, after capturing the data, I need to separate them into older and younger 18 years and print on the screen the result with all the data registered, I’m hitting me to be performed alphabetical order. Could you help me?
agenda = []
dados = {}
maior = []
menor = []
dados['nome'] = input('Digite o Nome: ')
while dados['nome'] != '':
dados['idade'] = int(input('Digite a Idade: '))
dados['telefone'] = int(input('Digite o Telefone: '))
agenda.append(dados.copy())
dados['nome'] = str(input('Digite o Nome: '))
print('')
print('Total de Cadastros')
print(f'{"Nome":<15}{"Idade":<15}{"Telefone":<15}')
print('')
for contatos in agenda:
print(f'{contatos["nome"]:<15}{contatos["idade"]:<15}{contatos["telefone"]:<15}')
if contatos['idade'] >= 18:
maior.append(contatos)
if contatos['idade'] < 18:
menor.append(contatos)
print('-'*50)
print('Maiores de Idade')
print(f'{"Nome":<15}{"Idade":<15}{"Telefone":<15}')
print('')
for contatoslista in maior:
dados = dict(sorted(dados.items(), key=lambda chave: chave[0]))
print(f'{contatoslista["nome"]:<15}{contatoslista["idade"]:<15}{contatoslista["telefone"]:<15}')
print('-'*50)
print('Menores de Idade')
print(f'{"Nome":<15}{"Idade":<15}{"Telefone":<15}')
print('')
for contatoslista in menor:
print(f'{contatoslista["nome"]:<15}{contatoslista["idade"]:<15}{contatoslista["telefone"]:<15}')
The structure you chose for your data is not ideal, in that reply I explain a little bit about this.
– fernandosavio