Como ordenar um dicionário por chave e valor em Python?
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 lambda
funçã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