Categorias
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.

Deixe um comentário

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