Pular para o conteúdo principal

Como ordenar um dicionário por valor em Python

Aprenda métodos eficientes para ordenar um dicionário por valores em Python. Descubra como ordenar em ordem crescente e decrescente e dicas extras para a ordenação por chave.
Atualizado 29 de ago. de 2025  · 5 min lido

A classificação é uma operação fundamental na manipulação de dados, e os dicionários em Python Python não são exceção. Seja num projeto complexo de análise de dados ou num script simples, saber como ordenar um dicionário por valor de forma eficiente pode ser super útil.

Neste artigo, vamos ver os vários jeitos de ordenar dicionários pelos seus valores em Python, garantindo que a gente tenha as ferramentas pra organizar nossos dados como precisarmos.

A resposta curta: Como ordenar um dicionário por valor em Python

Pra classificar rapidinho um dicionário por valor, dá pra usar a função embutida do Python .sorted() junto com uma função lambda. Esse método é simples e eficiente para a maioria dos casos de uso.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))

print(sorted_by_values)

# Expected output:
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Agora, vamos dar um passo atrás e entender os dicionários Python e por que podemos precisar classificá-los.

O que são dicionários Python?

Python são são um tipo de estrutura de dados que armazena dados em pares de chave-valor. São super versáteis e permitem pesquisas, inserções e exclusões rápidas. Aqui vai um exemplo simples:

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}

# No expected output

No dicionário acima, os nomes dos alunos são as chaves e suas notas são os valores. 

Os dicionários são úteis em várias situações, tipo quando a gente precisa guardar e pegar dados de forma eficiente. Mas, às vezes, precisamos organizar esses dados por valores, em vez de chaves — tipo, quando queremos classificar os alunos pelas notas deles.

Como ordenar um dicionário por valor em Python

Agora, vamos dar uma olhada mais de perto na função .sorted() em Python e como usá-la especificamente para classificar dicionários por valor.

Como ordenar um dicionário por valor usando .sorted()

A função .sorted() é uma ferramenta poderosa e flexível para classificação em Python. Para ordenar um dicionário pelos seus valores, podemos usar uma função lambda para especificar que a ordenação deve ser baseada nos valores do dicionário.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))

print(sorted_by_values)

# Expected output: 
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Neste exemplo, student_scores.items() retorna um objeto de visualização que exibe uma lista dos pares chave-valor do dicionário. A função .sorted() organiza esses pares pelos valores (item[1]) e dict() transforma a lista organizada de volta em um dicionário.

Como ordenar um dicionário por valor em ordem decrescente ou crescente

Por padrão, a função .sorted() ordena em ordem crescente. Mas, dependendo da situação, dá pra mudar isso pra ordenar em ordem decrescente ou crescente, colocando o parâmetro reverse como True ou False.

Como ordenar um dicionário em ordem crescente

Como já falamos, um dicionário vai ser ordenado em ordem crescente por padrão quando usar a função .sorted(). Também podemos conseguir uma ordem crescente definindo o parâmetro reverse como False.

sorted_by_values_asc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=False))
print(sorted_by_values_asc)

# Expected output:
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Como ordenar um dicionário em ordem decrescente

Se a gente quiser ordenar em ordem crescente, dá pra definir o reverse parâmetro como True.

sorted_by_values_desc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=True))
print(sorted_by_values_desc)

# Expected output:
# {'Cyrus': 93, 'Alex': 88, 'Denver': 85, 'Ben': 75}

Bônus: Como ordenar um dicionário por chave em Python

Embora este artigo se concentre na classificação por valores, também é útil saber como classificar um dicionário por suas chaves. Isso pode ser feito de forma parecida usando a função .sorted() .

sorted_by_keys = dict(sorted(student_scores.items()))
print(sorted_by_keys)

# Expected output:
# {'Alex': 88, 'Ben': 75, 'Cyrus': 93, 'Denver': 85}

Para ordem decrescente, basta definir reverse=True:

sorted_by_keys_desc = dict(sorted(student_scores.items(), reverse=True))
print(sorted_by_keys_desc)

# Expected output:
# {'Denver': 85', 'Cyrus': 93, 'Ben': 75, 'Alex': 88}

Conclusão

Ordenar um dicionário pelos seus valores em Python é uma tarefa comum que pode ser facilmente realizada usando a função .sorted(). Se precisarmos dos dados em ordem crescente ou decrescente, entender essas técnicas vai deixar nossas tarefas de manipulação de dados mais simples e eficientes. Dominando esses métodos de classificação, podemos garantir que nossos dados sejam organizados de forma consistente para atender melhor às nossas necessidades.

Perguntas frequentes

P1: Posso ordenar um dicionário por valores se os valores forem strings em vez de números?

A1: Sim, dá pra ordenar um dicionário por valores, mesmo que os valores sejam strings. A função ` .sorted() ` vai organizar os valores em ordem alfabética crescente ou decrescente, assim como faz com os números.

PERGUNTA 2: Como posso ordenar um dicionário por valores se ele contém dicionários aninhados?

A2: Pra ordenar um dicionário com dicionários aninhados, a gente precisa definir uma função de ordenação personalizada que extraia e compare os valores aninhados relevantes. Isso precisa de uma função lambda mais complexa ou uma função separada para lidar com a comparação.

TERCEIRO TRIMESTRE: Posso ordenar um dicionário por valores no local, sem criar um novo dicionário?

A3: Não, os dicionários em Python são coleções sem ordem por padrão nas versões anteriores à 3.7 e, mesmo que eles mantenham a ordem de inserção a partir do Python 3.7, não tem nenhum método embutido pra organizá-los no lugar. Classificar um dicionário sempre resulta na criação de um novo dicionário com a ordem desejada.

4º TRIMESTRE: Qual é a complexidade temporal da classificação de um dicionário por valores em Python?

A4: A complexidade temporal da classificação de um dicionário por valores usando a função ` .sorted() ` é O(n log n), onde n é o número de pares chave-valor no dicionário. Isso porque o .sorted() usa internamente o Timsort, um algoritmo de classificação híbrido com essa complexidade.

P5: Classificar um dicionário por valores vai mudar o dicionário original?

A5: Não, ordenar um dicionário por valores usando a função ` .sorted() ` cria um novo dicionário. O dicionário original continua igual.


Neetika Khandelwal's photo
Author
Neetika Khandelwal
LinkedIn
Sou desenvolvedor Java e redator técnico especializado em ciência de dados, inteligência artificial (IA) e programação Java. Com mais de três anos de experiência em desenvolvimento de software, adquiri uma boa experiência na criação de aplicativos robustos e dimensionáveis e no aproveitamento da versatilidade do Java para resolver problemas complexos. Sou apaixonado por compartilhar conhecimento com a comunidade tecnológica mais ampla. Por meio de artigos técnicos, tutoriais e guias abrangentes, tento desmistificar tópicos complexos de ciência de dados e IA, tornando-os acessíveis a iniciantes e profissionais experientes. Atualmente, tenho mais de 125 blogs publicados.
Tópicos

Aprenda mais sobre Python com esses cursos!

Curso

Introdução ao Python

4 h
6.5M
Domine os fundamentos da análise de dados com Python em quatro horas e explore pacotes populares.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

Tutorial

Tutorial de compreensão de dicionário Python

Saiba tudo sobre a compreensão de dicionário do Python: como você pode usá-la para criar dicionários, substituir loops for (aninhados) ou funções lambda por map(), filter() e reduce(), ...!
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Um guia para hashmaps em Python

Descubra o que são hashmaps e como eles são implementados em Python por meio de dicionários.
Javier Canales Luna's photo

Javier Canales Luna

Tutorial

Anexar ao dicionário Python: Como adicionar pares de chave-valor

Aprenda a adicionar pares de chave-valor em um dicionário Python usando métodos como notação entre colchetes, .update() para adições em massa e .setdefault() para inserções condicionais.
Samuel Shaibu's photo

Samuel Shaibu

Tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

Tutorial

Tutorial de conjuntos e teoria de conjuntos em Python

Aprenda sobre os conjuntos do Python: o que são, como criá-los, quando usá-los, funções incorporadas e sua relação com as operações da teoria dos conjuntos.
DataCamp Team's photo

DataCamp Team

Tutorial

Pesquisa binária em Python: Um guia completo para uma pesquisa eficiente

Aprenda a implementar a pesquisa binária em Python usando abordagens iterativas e recursivas e explore o módulo bisect integrado para obter funções de pesquisa binária eficientes e pré-implementadas.
Amberle McKee's photo

Amberle McKee

Ver maisVer mais