Bom dia galera, estou aqui com um probleminha, tentei usar o max() e min() mas não adiantou…
É o seguinte, fiz uma agenda, e coloquei a opção para organizar a idade da pessoa do menor para o maior… O problema é que não tô conseguindo…
Essa imagem é um exemplo do que está acontecedo:
E eu queria que acontecesse isso assim:
Aqui está o código:
Este é o código de ordenar…
def ordenarporidade():
print("\n— Ordenado por idade —")
for pessoa in pessoas:
Dadospessoasordenar(pessoa)
E aqui é o código que tô usando pra ele dar print
def Dadospessoasordenar(pessoa):
print("[Pessoa %s]\nNome: %s \nNúmero de Telemóvel: %s \nIdade: %s anos\nAltura: %s metros\nPeso: %s kg\n" % (pessoa.getId(), pessoa.getNome(), pessoa.getNumero(), pessoa.getIdade(), pessoa.getAltura(), pessoa.getPeso()))
Obrigado a quem puder me ajudar! Valeu…
Veja se ajuda…
ordenadoIdade = sorted(pessoas, key=lambda x: x.getIdade(), reverse=False)
print(ordenadoIdade)
Eu coloquei getIdade() ai mas nem sei o que vc usa pra pegar idade, ajuste ao seu código…
O reverse=False quer dizer ordenado naturalmente (1,2,3,4,5…), se quiser do maior para o menor é só mudar pra True (5,4,3,2,1…)
Tirei esse exemplo daqui
Mas onde posso colocar esse código? Estou um pouco confuso…
Coloquei seu código na minha
def Dadospessoasordenar(pessoa)
mas ficou assim:
Se conseguir me ajudar, seria muito foda…
Também não sei se tou colocando no sítio correto…
Isso era só exemplo jovem, era pra colocar em outro lugar só pra testar, vc também precisa exercitar um pouco a mente e não ficar só no copia e cola, nem tudo o que a gente passa é solução definitiva, colocar em prática é sua obrigação, mas entender o que está fazendo é essencial!
def ordenarporidade():
pessoas.sort(key=lambda p: p.getIdade(), reverse=False)
...
Volto a dizer, não sei o que vc usa pra pegar a idade de cada pessoa, ajuste ao seu código…
O resto continua do jeito que estava, vc precisa ordenar a lista antes de imprimir pegou? sucesso
1 curtida
Valeu, ajudou mesmo…
Só uma coisa…
Esse código aqui:
pessoas.sort(key=lambda pessoa: pessoa.getIdade(), reverse=False)
Não dá pra tirar ele de fazer print?
Não entendi, esse trecho não imprime nada, apenas reordena a lista…
1 curtida
Consegui resolver, valeu cara.