¿Cómo ordenar una lista de diccionarios por un valor del diccionario en Python?
¿Cómo ordeno una lista de diccionarios por el valor de una clave específica? Dado:
[{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
Cuando se ordena por name
, debería convertirse en:
[{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
Aceptado
La sorted()
función toma un key=
parámetro.
newlist = sorted(list_to_be_sorted, key=lambda d: d['name'])
Alternativamente, puede utilizar operator.itemgetter
en lugar de definir la función usted mismo
from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name'))
Para completar, agregue reverse=True
para ordenar en orden descendente
newlist = sorted(list_to_be_sorted, key=itemgetter('name'), reverse=True)
import operator
Para ordenar la lista de diccionarios por clave='nombre':
list_of_dicts.sort(key=operator.itemgetter('name'))
Para ordenar la lista de diccionarios por clave='edad':
list_of_dicts.sort(key=operator.itemgetter('age'))