Formas de ordenar la lista de diccionarios por valores en Python: uso de itemgetter

En este artículo, cubriremos cómo ordenar un diccionario por valor en Python . Para ordenar una lista de diccionarios por el valor de la clave específica en Python, usaremos el siguiente método en este artículo.

En la programación diaria, la clasificación siempre ha sido una herramienta útil. El diccionario de Python se utiliza con frecuencia en una variedad de aplicaciones, desde las que involucran a la competencia hasta las que involucran a los desarrolladores (por ejemplo, el manejo de datos JSON). En estas circunstancias, puede resultar útil poder filtrar los diccionarios según sus valores.
Hay dos métodos para hacer esta clasificación:

 

¿Qué es Itemgetter en Python?

El Itemgetter se puede usar en lugar de la función lambda para lograr una funcionalidad similar. Salidas de la misma manera que sorted() y lambda, pero tiene una implementación interna diferente. Toma las claves de los diccionarios y las convierte en tuplas. Reduce los gastos generales y es más rápido y eficiente. El módulo “ operador ” tiene que ser importado para su trabajo. El código se explica a continuación. 

  • Rendimiento : itemgetter funciona mejor que las funciones lambda en el contexto del tiempo.
  • Conciso : itemgetter se ve más conciso al acceder a múltiples valores que las funciones lambda.

Ejemplo:

Python3

# Python code demonstrate the working of sorted()
# and itemgetter
 
# importing "operator" for implementing itemgetter
from operator import itemgetter
 
# Initializing list of dictionaries
lis = [{"name": "Nandini", "age": 20},
       {"name": "Manjeet", "age": 20},
       {"name": "Nikhil", "age": 19}]
 
# using sorted and itemgetter to print list sorted by age
print "The list printed sorting by age: "
print sorted(lis, key=itemgetter('age'))
 
print("\r")
 
# using sorted and itemgetter to print
# list sorted by both age and name
# notice that "Manjeet" now comes before "Nandini"
print "The list printed sorting by age and name: "
print sorted(lis, key=itemgetter('age', 'name'))
 
print("\r")
 
# using sorted and itemgetter to print list
# sorted by age in descending order
print "The list printed sorting by age in descending order: "
print sorted(lis, key=itemgetter('age'), reverse=True)

Producción:

The list printed sorting by age: 
[{'age': 19, 'name': 'Nikhil'}, {'age': 20, 'name': 'Nandini'}, {'age': 20, 'name': 'Manjeet'}]

The list printed sorting by age and name: 
[{'age': 19, 'name': 'Nikhil'}, {'age': 20, 'name': 'Manjeet'}, {'age': 20, 'name': 'Nandini'}]

The list printed sorting by age in descending order: 
[{'age': 20, 'name': 'Nandini'}, {'age': 20, 'name': 'Manjeet'}, {'age': 19, 'name': 'Nikhil'}]

Artículo siguiente -> Formas de ordenar la lista de diccionarios por valores en Python – Usando la función lambda

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *