Python: ordenar la lista de diccionarios por el iésimo valor del índice de la clave

Dada la Lista de diccionarios, ordene los diccionarios en función del i-ésimo valor de índice de Key

Entrada : [{“Gfg”: “Best”, “for”: “Geeks”}, {“Gfg”: “Good”, “for”: “Me”}, {“Gfg”: “Better”, “for ”: “Todos”}], K = “Gfg”, i = 1
Salida : [{‘Gfg’: ‘Mejor’, ‘para’: ‘Geeks’}, {‘Gfg’: ‘Mejor’, ‘para’ : ‘All’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}]
Explicación : ordenar en orden de e = e < o, como primer elemento de índice del valor de «Gfg».

Entrada : [{“Gfg”: “Best”, “for”: “Geeks”}, {“Gfg”: “Good”, “for”: “Me”}, {“Gfg”: “Better”, “for ”: “Todos”}], K = “Gfg”, i = 0
Salida : [{‘Gfg’: ‘Mejor’, ‘para’: ‘Geeks’}, {‘Gfg’: ‘Mejor’, ‘para’ : ‘All’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}]
Explicación : ordenar en orden de B = B < G, como primer elemento de índice del valor de «Gfg».

Método #1: Usar sort() + lambda

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de clasificar usando sort() y la función lambda en la condición de unidades de parámetro «clave».

Python3

# Python3 code to demonstrate working of 
# Sort Dictionary List by Key's ith Index value
# Using sort() + lambda
  
# initializing lists
test_list = [{"Gfg" : "Best", "for" : "Geeks"},
             {"Gfg" : "Good", "for" : "Me"},
             {"Gfg" : "Better", "for" : "All"}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = "Gfg"
  
# initializing i 
i = 2
  
# using sort to perform sort(), lambda
# function drives conditions
res = sorted(test_list, key = lambda sub: sub[K][i])
  
# printing result 
print("List after sorting : " + str(res))
Producción

La lista original: [{‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}]
Lista después de ordenar: [{‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Mejor’, ‘para’: ‘Todos’}]

Método #2: Usar sort() + lambda + get()

La combinación de las funciones anteriores también puede resolver este problema. Esta es solo una ligera variación del método anterior. En esto, usamos get() para evitar posibilidades de que la clave no esté presente en un registro en particular.

Python3

# Python3 code to demonstrate working of 
# Sort Dictionary List by Key's ith Index value
# Using sort() + lambda + get()
  
# initializing lists
test_list = [{"Gfg" : "Best", "for" : "Geeks"},
             {"Gfg" : "Good", "for" : "Me"},
             {"Gfg" : "Better", "for" : "All"}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = "Gfg"
  
# initializing i 
i = 2
  
# using sort to perform sort(), lambda
# function drives conditions, get() used to 
# avoid missing key error
res = sorted(test_list, key = lambda sub: sub.get(K)[i])
  
# printing result 
print("List after sorting : " + str(res))
Producción

La lista original: [{‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}]
Lista después de ordenar: [{‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Mejor’, ‘para’: ‘Todos’}]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *