Categorias
Artigos Python

Como ordenar um dicionário em Python

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

Por Diego Mariano

Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados e aprendizado de máquina aplicados ao aperfeiçoamento de enzimas usadas na produção de biocombustíveis. Mestre em Bioinformática, também pela UFMG, atuando na área de desenvolvimento de sistemas Web para montagem de genomas. Atualmente realiza estágio pós-doutoral no Departamento de Ciência da Computação da UFMG com foco em desenvolvimento de sistemas Web para Bioinformática, análise exploratória e visualização de dados. Tem conhecimentos nas linguagens: PHP, JavaScript, Python, R, Perl, HTML, CSS e SQL.

Uma resposta em “Como ordenar um dicionário em Python”

Excelente explicação!
Muito obrigado por disponibilizar este conteúdo, realmente me ajudou muito. ????????????????????????????????????

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

error

Compartilhe este post!

Facebook
YouTube
LinkedIn
Instagram