Pular para o conteúdo

Como ordenar um dicionário por chave no Python

[

Ordenando um Dicionário em Python: Valores, Chaves e Mais

por Ian Currie 3 Comentários data-structures intermediate

Neste tutorial, você aprenderá:

  • Revisar como usar a função sorted()
  • Aprender a obter visões do dicionário para iterar
  • Entender como os dicionários são convertidos em listas durante a classificação
  • Aprender a especificar uma chave de classificação para classificar um dicionário por valor, chave ou atributo aninhado
  • Revisar as compreensões de dicionário e o dict() construtor 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 acompanhar o tempo de execução do seu código e obter resultados tangíveis para comparar os diferentes métodos de classificação de dados de chave-valor. Você também considerará se um dicionário classificado é realmente a melhor opção, pois não é um padrão muito comum.

Primeiro, você aprenderá alguns conhecimentos fundamentais antes de tentar classificar um dicionário em Python.

Redescobrindo a Ordem dos Dicionários em Python

Se você deseja manter um dicionário ordenado como uma estrutura de dados, pode usar o collections.OrderedDict. No entanto, se você está apenas interessado em classificar um dicionário temporariamente para fins de exibição ou processamento posterior, há várias maneiras de fazer isso usando a função sorted().

Vamos começar com uma visão geral de como usar a função sorted() para classificar um dicionário.

Usando a função sorted()

A função sorted() é uma função interna em Python que permite classificar objetos iteráveis. Ela retorna uma nova lista contendo todos os elementos do objeto iterável especificado em ordem ascendente por padrão.

Aqui está um exemplo simples que mostra como usar a função sorted() para classificar uma lista de números:

numbers = [4, 2, 7, 1, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

A saída será:

[1, 2, 3, 4, 7]

Essa função também pode ser usada para classificar um dicionário. No entanto, a função sorted() não classifica diretamente o próprio dicionário, mas sim seus pares de chave-valor. Por padrão, a função sorted() classifica os pares de chave-valor do dicionário com base nas chaves em ordem ascendente.

Aqui está um exemplo que mostra como usar a função sorted() para classificar um dicionário por chave:

inventory = {"banana": 3, "apple": 2, "orange": 5}
sorted_inventory = sorted(inventory.items())
print(sorted_inventory)

A saída será:

[('apple', 2), ('banana', 3), ('orange', 5)]

Observe que a função sorted() retorna uma lista de tuplas contendo os pares de chave-valor ordenados por chave. Cada tupla contém primeiro a chave e depois o valor correspondente do dicionário.

Você também pode especificar uma chave de classificação personalizada usando o parâmetro key. Isso permite que você classifique o dicionário com base em valores, chaves ou até mesmo atributos aninhados.

Continue lendo para aprender como especificar uma chave de classificação personalizada e classificar um dicionário por valor, chave ou atributo aninhado.