Ao trabalhar com dados em Python, você pode se deparar com uma situação em que possui uma lista de dicionários e precisa ordenar essa lista por um dos valores do dicionário. Essa é uma tarefa comum na manipulação de dados e o Python oferece várias maneiras de realizá-la. Vamos explorar como ordenar uma lista de dicionários pelo valor de uma chave específica.
Usando a Função sorted()
com uma Expressão lambda
Um dos métodos mais diretos para ordenar uma lista de dicionários é usando a função sorted()
juntamente com uma expressão lambda
. A função sorted()
retorna uma nova lista, e você pode especificar o critério de ordenação com o parâmetro key
.
Aqui está um exemplo de como usá-la:
lista_para_ordenar = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
nova_lista = sorted(lista_para_ordenar, key=lambda d: d['name'])
print(nova_lista)
TestarApós executar o código acima, nova_lista
será:
{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
Usando operator.itemgetter
Se você preferir não usar uma expressão lambda
, pode usar a função itemgetter
do módulo operator
. Essa função permite que você especifique a chave do dicionário pela qual deseja ordenar.
Primeiro, você precisa importar a função itemgetter
e então você pode ordenar a lista assim:
from operator import itemgetter
lista_para_ordenar = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
nova_lista = sorted(lista_para_ordenar, key=itemgetter('name'))
print(nova_lista)
TestarOrdenando listas de dicionários em Ordem Decrescente
Se você precisar ordenar a lista em ordem decrescente, pode adicionar o parâmetro reverse=True
à função sorted()
:
nova_lista = sorted(lista_para_ordenar, key=itemgetter('name'), reverse=True)
Usando o Método sort()
Alternativamente, você pode usar o método sort()
, que modifica a lista no local. Isso significa que a lista original será alterada para a lista ordenada.
Veja como você pode ordenar a lista pela chave ‘name’:
import operator
lista_de_dicionarios = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
lista_de_dicionarios.sort(key=operator.itemgetter('name'))
E se você quiser ordenar pela chave ‘age’:
lista_de_dicionarios.sort(key=operator.itemgetter('age'))
Resumo
Ordenar uma lista de dicionários pelo valor de uma chave específica em Python pode ser feito de forma eficiente usando a função sorted()
com uma expressão lambda
ou operator.itemgetter
. Você também pode usar o método sort()
se quiser ordenar a lista no local. Lembre-se de usar o parâmetro reverse=True
se precisar que a lista seja ordenada em ordem decrescente. Com essas ferramentas, você pode organizar seus dados de acordo com suas necessidades.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários