Dicionários em Python são um tipo de dado que armazena chaves e valores. Entretanto, caso seja necessário ordenar seus dados, eles serão posicionados de acordo com a chave:
d = {'cachorro':2, 'gato':3, 'elefante':1 }
print(sorted(d)) # ['cachorro', 'elefante', 'gato']
Observe que os valores foram ordenados de acordo com a primeira letra de cada chave e não de acordo com os valores de cada chave.
Veja ainda que utilizamos a função sorted(). Note que dicionários não possuem o método sort().
print(d.sort())
# AttributeError: 'dict' object has no attribute 'sort'
Então como ordenar um dicionário de acordo com os valores?
Ordenando dicionários pelos valores
Em certas situações pode ser necessário exibir os dados de um dicionário Python ordenado pelos valores. Podemos fazer isso da seguinte forma:
d = {'cachorro':2, 'gato':3, 'elefante':1 }
for i in sorted(d, key = d.get):
print(i, d[i])
# elefante 1
# cachorro 2
# gato 3
Ordenação decrescente
Para ordenar do maior para o menor, utilize o parâmetro reverse=True:
d = {'cachorro':2, 'gato':3, 'elefante':1 }
for i in sorted(d, key = d.get, reverse=True):
print(i, d[i])
# gato 3
# cachorro 2
# elefante 1
Uma resposta em “Como ordenar um dicionário em Python”
Excelente explicação!
Muito obrigado por disponibilizar este conteúdo, realmente me ajudou muito. ????????????????????????????????????