Desvendando o Desempacotamento Aninhado em Python

Ordenar um dicionário pelos seus valores é uma tarefa comum na programação Python, especialmente quando se lida com dados lidos de bancos de dados ou outras fontes estruturadas. Neste artigo, vamos explorar como ordenar dicionários pelos seus valores tanto em ordem crescente quanto decrescente.
No Python 3.7 os dicionários mantêm a ordem de inserção. Isso significa que, quando você ordena um dicionário, o novo dicionário preservará essa ordem. Veja como você pode ordenar um dicionário pelos seus valores:
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
dicionario_ordenado = {k: v for k, v in sorted(x.items(), key=lambda item: item[1])}
print(dicionario_ordenado)
TestarA saída será um novo dicionário ordenado em ordem crescente pelos valores:
{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}
Alternativamente, você pode usar a função dict()
para converter os itens ordenados de volta em um dicionário:
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
dicionario_ordenado = dict(sorted(x.items(), key=lambda item: item[1]))
print(dicionario_ordenado)
TestarEm versões anteriores do Python, os dicionários não mantêm a ordem. No entanto, você ainda pode ordenar os valores e obter uma representação de um dicionário ordenado usando uma lista de tuplas:
import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
print(sorted_x)
Testarsorted_x
será uma lista de tuplas ordenadas pelo segundo elemento (o valor) em cada tupla. Se você precisar de um dicionário, pode convertê-lo de volta usando dict(sorted_x)
.
collections.OrderedDict
Se você quiser manter um dicionário ordenado em versões mais antigas do Python, você pode usar collections.OrderedDict
:
import collections
dicionario_ordenado = collections.OrderedDict(sorted_x)
TestarPara uma abordagem direta de ordenação por valores, você pode usar:
chaves_ordenadas = sorted(dict1, key=dict1.get)
Isso lhe dará uma lista de chaves ordenadas com base em seus valores correspondentes no dicionário.
Você também pode ordenar um dicionário pelos seus valores usando uma função lambda:
d = {'one': 1, 'three': 3, 'five': 5, 'two': 2, 'four': 4}
itens_ordenados = sorted(d.items(), key=lambda x: x[1])
print(itens_ordenados)
TestarPara ordenar em ordem decrescente, basta adicionar reverse=True
:
d = {'one': 1, 'three': 3, 'five': 5, 'two': 2, 'four': 4}
itens_ordenados_desc = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(itens_ordenados_desc)
TestarOrdenar um dicionário por valor no Python pode ser feito usando vários métodos, dependendo da versão do Python que você está usando. Nas versões modernas do Python, você pode ordenar dicionários diretamente e manter a ordem. Em versões mais antigas, você pode ordenar os itens e então criar um OrderedDict
ou converter os itens ordenados de volta em um dicionário. Para ordenação simples, você pode usar a função sorted()
com o parâmetro key
definido para dict.get
, e para mais controle, você pode usar uma função lambda para especificar o comportamento da ordenação. Seja para ordenar em ordem crescente ou decrescente, esses métodos ajudarão você a organizar seus dados de dicionário de forma eficiente.
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
Comentários
30xp