Como ordenar um dicionário no Python de forma fácil?
Ordenando um dicionário em Python: Valores, Chaves e Mais
por Ian Currie
Tabela de Conteúdos
- Redescobrindo a Ordem de um Dicionário em Python
- Entendendo o que Significa Ordenar um Dicionário
- Ordenando Dicionários em Python
- Considerando Questões Estratégicas e de Desempenho
- Conclusão
Você possui um dicionário, mas gostaria de ordenar as suas pares de chave-valor. Talvez você tenha tentado passar um dicionário para a função sorted()
, mas não obteve os resultados esperados. Nesse tutorial, você verá tudo o que precisa saber para ordenar dicionários em Python.
Neste tutorial, você irá:
- Revisar como usar a função
sorted()
; - Aprender como obter as visualizações do dicionário para iteração;
- Entender como os dicionários são convertidos em listas durante a ordenação;
- Aprender como especificar uma chave de ordenação para ordenar um dicionário por valor, chave ou atributo aninhado;
- Revisar as compreensões de dicionário e o construtor
dict()
para reconstruir seus dicionários; - Considerar estruturas de dados alternativas para seus dados de chave-valor.
Ao longo do caminho, você também usará o módulo timeit
para medir o tempo de execução do seu código e obter resultados concretos para comparar os diferentes métodos de ordenação de dados chave-valor. Você também vai considerar se um dicionário ordenado é realmente a melhor opção, já que não é um padrão muito comum.
Para obter o máximo deste tutorial, você deve conhecer dicionários, listas, tuplas e funções. Com esse conhecimento, você será capaz de ordenar dicionários até o final deste tutorial. Alguma exposição a funções de alta ordem, como funções lambda, também será útil, mas não é um requisito.
Primeiro, você aprenderá alguns conceitos fundamentais antes de tentar ordenar um dicionário em Python.
Redescobrindo a Ordem de um Dicionário em Python
Se você deseja manter um dicionário ordenado como uma estrutura de dados ante
Remova os anúncios
Neste tutorial, você aprenderá:
- Como usar a função
sorted()
para ordenar um dicionário - Como obter as visualizações de um dicionário para iteração
- Como os dicionários são convertidos em listas durante a ordenação
- Como especificar uma chave de ordenação para ordenar um dicionário por valor, chave ou atributo aninhado
- Como reconstruir um dicionário usando compreensões de dicionário e o construtor
dict()
- Alternativas de estruturas de dados para armazenar dados chave-valor
Ao longo do tutorial, você usará o módulo timeit
para medir o tempo de execução de seu código e comparar os diferentes métodos de ordenação de dados chave-valor. Você também considerará se um dicionário ordenado é realmente a melhor opção, já que não é um padrão muito comum.
Para aproveitar ao máximo este tutorial, você deve ter conhecimentos sobre dicionários, listas, tuplas e funções. Com esses conhecimentos, você poderá ordenar dicionários ao final deste tutorial. Algum conhecimento sobre funções de ordem superior, como funções lambda, também será útil, mas não é obrigatório.
Primeiro, você aprenderá alguns conhecimentos básicos antes de tentar ordenar um dicionário em Python.
Redescobrindo a Ordem de um Dicionário em Python
Se você deseja manter um dicionário ordenado como uma estrutura de dados antes do Python 3.7, precisa usar uma estrutura de dados alternativa como OrderedDict
da biblioteca collections
. No entanto, a partir do Python 3.7, você pode contar com a ordem de inserção ser preservada em dicionários regulares.
Entendendo o que Significa Ordenar um Dicionário
Ao falar em ordenar um dicionário em Python, você precisa esclarecer o que deseja ordenar. Um dicionário possui pares de chave-valor, mas como você pode querer ordená-los?
Ao discutir a ordenação de um dicionário, você pode querer ordenar os pares de chave-valor de acordo com as chaves, de acordo com os valores ou até mesmo de acordo com atributos aninhados se os valores forem, por exemplo, objetos. A chave é entender quais serão os critérios de ordenação.
Ordenando Dicionários em Python
Usando a função sorted()
A forma mais direta de ordenar um dicionário em Python é usar a função sorted()
. Quando você passa um dicionário para a função sorted()
, ela retorna uma lista de tuplas, onde cada tupla contém um par de chave-valor do dicionário.
Saída:
Observe que a lista de tuplas está classificada em ordem alfabética com base nas chaves do dicionário. Se os valores do dicionário forem do tipo numérico, você pode usar a função sorted()
com o parâmetro key
para ordenar com base nos valores.
Saída:
Nesse exemplo, o dicionário foi ordenado com base nas chaves. Se você deseja ordenar com base nos valores, pode usar o parâmetro key
com uma função lambda que retorna o valor correspondente para cada chave.