Neste artigo veremos como ordenar um dicionário pelo valor com Python, utilizando um recurso do paradigma funcional da linguagem.
Fala programador(a), beleza? Bora aprender mais sobre Python!
A ideia aqui é muito simples, vamos utilizar uma função lambda para acessar todos os valores do dicionário, que é a forma que o Python tem para acessar objetos complexos
A media que esta função o percorre, ela identifica se um elemento tem um valor maior que o outro por meio da função sorted e a lambda, que será nosso segundo argumento
Vamos ver na prática:
precisaOrdenar = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} ordenado = {k: v for k, v in sorted(precisaOrdenar.items(), key=lambda item: item[1])} print(ordenado)
Veja a saída:
{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}
Perceba que o dicionário foi ordenado corretamente pelos valores, as chaves não influenciam na ordem
Caso você precise que a ordem seja inversa, utilize o parâmetro reverse=True
Veja um exemplo:
precisaOrdenar = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} ordenado = {k: v for k, v in sorted(precisaOrdenar.items(), key=lambda item: item[1], reverse=True)} print(ordenado)
E a saída:
{3: 4, 4: 3, 1: 2, 2: 1, 0: 0}
Mais uma vez, o dicionário foi ordenado apenas pelos valores, agora de forma inversa
Conclusão
Neste artigo vimos como ordenar um dicionário pelo valor no Python
Utilizamos o método sorted, com uma função lambda, que é a maneira que o Python tem para acessar valores de objetos completos um a um
Desta maneira os dicionários são ordenados pelo seu valor, podemos inverter a ordem utilizando o parâmetro reversed com True
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
Muito boa a dica!
valeu Marcos!