Como ordenar o dicionário por chave em Python
-
Dicionário Python Ordenar Dicionário por Chave com o
dict.keys()
Método -
Python Sortar Dicionário por Chave com o
dict.items()
Método -
Python Classificar Dicionário por Chave com o Método
OrderedDict()
- Dicionário Python Sort Dictionary em ordem inversa
- Dicionário de Ordenação em Ordem Reversa 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