Como ordenar um dicionário por chave e valor em Python?

2 de Abril de 2020 – 4 min. Hoje vou dar pequenas dicas sobre a classificação de dicionários em Python (Python3). Como todos sabemos que os dicionários são inerentemente sem ordem, mas outros tipos, tais como lista e tuplos não são. Não é possível ordenar um dicionário, mas nós podemos fazer uma representação de um dicionário que é ordenado. Então você precisa de um tipo de dados ordenados para representar chaves ou valores ordenados, que será uma lista – provavelmente uma lista de tuplos.

>

Dicionário em Python (Fonte)

Processo de ordenação de dicionários

Como podemos ver no primeiro dicionário de figuras em python são um conjunto de chaves…onde cada par de valor chave é chamado de item. Agora vamos focar na questão principal: Os dicionários podem ser ordenados por chaves ou valores. Como está delineado na segunda figura podemos ordenar keys(), values(), e items() de um dicionário. Vamos nos concentrar na ordenação por values() primeiro.

dicionário de ordenação por valor

Deixe-nos um dicionário composto por várias organizações bem conhecidas como keys() e seu ano de fundação como values(). Então queremos ter um dicionário ordenado onde os itens mais antigos da organização serão o primeiro elemento e a organização mais jovem será a última.

d = {"Apple": 1976, "Microsoft":1975, "Facebook":2004, "Sony":1946, "IBM":1911, "Amazon": 1994 }

Como podemos ver no dicionário d, a IBM é a organização mais antiga, portanto será a primeira chave do dicionário ordenado e o Facebook será o último.

print(sorted(d.items(), key = lambda kv:kv))
print(sorted(d.items(), key = lambda kv:kv, reverse = True))
print(dict(sorted(d.items(), key = lambda kv:kv)))
sort_d = dict(sorted(d.items(), key = lambda kv:kv))
print(sort_d)

Output:



{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}
{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}

Desde que estamos ordenando d.items(), que é uma lista de tuplos onde keys() são o primeiro parâmetro e values() são o segundo parâmetro de cada tuple. Para ordenar a lista de tuples escolhemos os valores, ou seja, o segundo parâmetro de cada tuple como chave. Na primeira linha, a chave é definida como um lambdafunção onde o valor da chave é o segundo parâmetro dos itens. Esta ordenação irá criar uma lista de tuplos ordenados. podemos apenas fazer um dicionário usando a função dict() como mostrado na terceira linha de código. Podemos também inverter a ordenação que no resultado cria uma lista de tuplos com o mais novo em primeiro e o mais antigo será o último item como indicado na segunda linha do código. Também podemos salvar o dicionário ordenado para outro nome como mostrado acima.

sorting dictionary by key

print(sorted(d.items()))
print(dict(sorted(d.items())))
print(dict(sorted(d.items(), key = lambda kv:kv)))
print(sorted(d.items(), reverse = True))

Output:


{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}
{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}

As sabemos que o keys() aqui no dicionário d são strings então a ordenação pela chave irá criar uma lista de tuplos em ordem alfabética no keys() de cada item e usando a função dict() o dicionário é formado. também podemos usar a função lambda para definir a chave que é quase desnecessária, eu só mostrei para fazer uma comparação na definição da chave na ordenação.

É isso. Por favor, visite meu perfil para obter mais histórias sobre aprendizagem de máquinas e análise de dados. Qualquer tipo de sugestões e críticas são muito apreciadas. Aqui estão minhas histórias anteriores baseadas em um curso de pós-graduação oferecido pela Inha University, Rep of Korea:

Histórias anteriores:

Parte-1: Python básico e instalação
Parte-2: Capítulo-2: Estrutura de Dados Python – Tipo de Dados
Parte-3: Declarações de Controle (Loops) em Python
Parte:4: Funções Python & Módulos
Parte:5: Programação Orientada a Objetos em Python – Schafer & DataCamp.
Parte:6: Os tipos & procedimento de Aprendizagem de Máquina
Parte:7: Engenharia de Características para Aprendizagem de Máquina

Deixe uma resposta

O seu endereço de email não será publicado.