Como ordenar o dicionário por chave em Python

Azaz Farooq 10 outubro 2023
  1. Dicionário Python Ordenar Dicionário por Chave com o dict.keys() Método
  2. Python Sortar Dicionário por Chave com o dict.items() Método
  3. Python Classificar Dicionário por Chave com o Método OrderedDict()
  4. Dicionário Python Sort Dictionary em ordem inversa
  5. Dicionário de Ordenação em Ordem Reversa em Python
Como ordenar o dicionário por chave em Python

O dicionário Python é o mesmo que a tabela de hash que mantém as entradas, avaliando os hashes das chaves, e a seqüência de entradas é impossível de prever. Este artigo apresentará como ordenar o dicionário por chave em Python.

Dicionário Python Ordenar Dicionário por Chave com o dict.keys() Método

Vamos usar o dicionário abaixo como exemplo.

dict = {"hello": 56, "at": 23, "test": 43, "this": 43}

A saída do dict.keys() é

dict_keys(["hello", "at", "test", "this"])

Poderíamos fazer um novo dicionário, encomendado a partir desta lista desordenada de chaves.

sorted(dict.keys())

Resultado:

['at', 'hello', 'test', 'this']

Aplicamos repetidamente a ordenação nesta lista ordenada selecionando cada entrada do dicionário.

for key in sorted(dict.keys()):
    print(key, " :: ", dict[key])

Resultado:

at  ::  23
hello  ::  56
test  ::  43
this  ::  43

Python Sortar Dicionário por Chave com o dict.items() Método

Também podemos ordenar um dicionário por chave em Python com o método dict.items().

Ele irá gerar uma lista que contém pares de valores de chave?

dict.items()

Resultado:

dict_items([('hello', 56), ('at', 23), ('test', 43), ('this', 43)])

Poderíamos fazer uma lista organizada pela seguinte função. Ela ordenará as entradas do dicionário de acordo com os valores chave.

sorted(dict.keys())

Resultado:

['at', 'hello', 'test', 'this']

Agora para produzir o par de valores chave de ordenação do dicionário, usamos o seguinte código.

for elem in sorted(dict.items()):
    print(elem[0], " ::", elem[1])

Resultado:

at  :: 23
hello  :: 56
test  :: 43
this  :: 43

Em termos de complexidade, é mais potente do que a abordagem anterior. Como não precisamos verificar o valor da chave depois de classificar a lista iterável, como em dict.key().

Python Classificar Dicionário por Chave com o Método OrderedDict()

Alternativamente, podemos classificar os itens do dicionário por valor chave utilizando o módulo Colecções.

import collections

d = {2: 13, 1: 9, 4: 25, 3: 0}
result = collections.OrderedDict(sorted(d.items()))
print(result)

Resultado:

OrderedDict([(1, 9), (2, 13), (3, 0), (4, 25)])

Dicionário Python Sort Dictionary em ordem inversa

Anteriormente, classificávamos os itens do dicionário em ordem ascendente. Agora discutimos algumas maneiras de ordenar os itens do dicionário em ordem decrescente.

A sintaxe é:

sorted(iterable_sequence, reverse=True)

O seguinte código ordena e inverte os itens do dicionário.

dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
for elem in sorted(dict.items(), reverse=True):
    print(elem[0], " ::", elem[1])

O parâmetro reverse=True garante que o dicionário ordenado seja revertido.

Resultado:

this  :: 43

test  :: 43

hello  :: 56

at  :: 23

Dicionário de Ordenação em Ordem Reversa em Python

Este método ordenará os itens do dicionário utilizando o comprimento da string key.

sorted(iterable_sequence, key=Function)

A função lambda que retorna o tamanho da string é dada ao parâmetro key.

listofTuples = sorted(dict.items() ,  key=lambda x: len (x[0] ) )
for elem in listofTuples :
    print(elem[0] , " ::" , elem[1] )

Resultado:

at  :: 23

test  :: 43

this  :: 43

hello  :: 56

Artigo relacionado - Python Dictionary