Como ordenar um Python Dictionary

Tempo estimado de leitura: 3 atas

Nas nossas Perguntas de Síntese da Entrevista Python, começámos o processo de tentar prepará-lo para responder a quaisquer perguntas que possam surgir num cenário de entrevista.

Passamos então a mostrar como discutir as Perguntas da Entrevista ao Dicionário Python e o que pode surgir.

Uma das perguntas que lhe podem ser feitas é como lidar com a classificação de um dicionário de pitões usando uma chave.

Algumas das formas que poderá querer ordenar são as seguintes, continue a ler para exemplos de código:

Perguntas de Entrevista ao Dicionário Python

Como utilizar o Método dos Artigos e Separados em Python

No código abaixo, criámos um dicionário vazio e depois anexámos em três pares de valores-chave.

A primeira declaração impressa apenas imprime o dicionário na sua forma desordenada.

A segunda declaração impressa faz duas coisas:

  1. Antes de mais nada, ordena os itens do Dict1 vazio em ordem
  2. Depois vai e cria-os num dicionário.

A razão pela qual temos de fazer o segundo passo é que a função sorted() devolve uma lista ordenada, como resultado, não está num formato de dicionário.

empty_dict1 = {}

empty_dict1['Key2'] = '2'
empty_dict1['Key1'] = '1'
empty_dict1['Key3'] = '3'
print("Your unsorted by key dictionary is:",empty_dict1)
print("Your sorted by key dictionary is:",dict(sorted(empty_dict1.items())))

Result:
Your unsorted by key dictionary is: {'Key2': '2', 'Key1': '1', 'Key3': '3'}
Your sorted by key dictionary is: {'Key1': '1', 'Key2': '2', 'Key3': '3'}

Como utilizar a compreensão de listas para ordenar um dicionário

No seguimento do acima exposto, também poderíamos apenas iterar sobre o dicionário utilizando as compreensões da lista.

A seguir cria-se uma variável chamada d. Esta é igual à saída da compreensão da lista.

Note that inside the {} brackets you have a:b, this purely creates two sets of values that will be used as the output to generate the dictionary.

Verá também que isto cria valores de índice, começando em 0, e não os valores reais que queremos.

Como resultado, limitamo-nos a largar estes valores de índice e a substituí-los pelos valores que queremos usando o método pop().

As duas últimas declarações impressas mostram o antes e o depois da ordenação do dicionário!

d = {a:b for a, b in enumerate(empty_dict1.values())}
print(d)
d["Key2"] = d.pop(0) #replaces 0 with Key2
d["Key1"] = d.pop(1) #replaces 1 with Key1
d["Key3"] = d.pop(2) #replaces 2 with Key3
print(d)
print(dict(sorted(d.items())))

Result:
{0: '2', 1: '1', 2: '3'}
{'Key2': '2', 'Key1': '1', 'Key3': '3'}
{'Key1': '1', 'Key2': '2', 'Key3': '3'}

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *