English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cómo ordenar una lista de diccionarios por valor en Python

Se proporciona un diccionario, nuestra tarea es ordenarlos por sus valores. Este diccionario tiene dos valores, uno es name y el otro es roll. Primero, usamos la función lambda y la función de ordenamiento integrada para mostrar la lista ordenada por número de matrícula.

Segundo, mostramos la lista ordenada por nombre y número de matrícula, tercero, mostramos por su nombre.

Código de ejemplo

# Inicializando lista de diccionarios 
my_list1 = [{ "name" : "Adwaita", "roll" : 100},
{ "name" : "Aadrika", "roll" : 234 },
{ "name" : "Sakya" , "roll" : 23 }]
print ("La lista se ordena por número de matrícula: ")
print (sorted(my_list1, key = lambda i: i['roll']) )
print ("\r")
print ("La lista se ordena por nombre y número de matrícula: ")
print (sorted(my_list1, key = lambda i: (i['roll'], i['name'])) )
print ("\r")
print ("La lista se ordena por número de matrícula en orden descendente: ")
print (sorted(my_list1, key = lambda i: i['roll'],reverse=True) )

Resultado de la salida

La lista se ordena por número de matrícula: 
[{'name': 'Sakya', 'roll': 23}, {'name': 'Adwaita', 'roll': 100}, {'name': 'Aadrika', 'roll': 234}]
La lista se ordena por nombre y número de matrícula: 
[{'name': 'Sakya', 'roll': 23}, {'name': 'Adwaita', 'roll': 100}, {'name': 'Aadrika', 'roll': 234}]
La lista se ordena por número de matrícula en orden descendente: 
[{'name': 'Aadrika', 'roll': 234}, {'name': 'Adwaita', 'roll': 100}, {'name': 'Sakya', 'roll': 23}]