Dada la lista de diccionarios de un solo elemento y la lista de orden de claves, realice una clasificación de diccionario de acuerdo con las claves personalizadas.
Entrada : test_list1 = [{‘is’: 4}, {“Gfg”: 10}, {“Best”: 1}], test_list2 = [“Gfg”, “is”, “Best”]
Salida : [{‘ Gfg’: 10}, {‘is’: 4}, {‘Best’: 1}]
Explicación : por orden de lista, la lista de diccionarios se ordena.Entrada : test_list1 = [{“Gfg”: 10}, {‘is’: 4}, {“Best”: 1}], test_list2 = [“Gfg”, “is”, “Best”]
Salida : [{‘ Gfg’: 10}, {‘is’: 4}, {‘Best’: 1}]
Explicación : ya se ordenó. No se requiere reordenar.
Método #1: Usar sorted() + index() + keys() + lambda
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, realizamos la ordenación usando sorted(), index() se usa para ordenar de la lista personalizada, keys() se usa para extraer las claves del diccionario.
Python3
# Python3 code to demonstrate working of # Sort list of Single Item dictionaries according to custom ordering # Using sorted() + index() + keys() + lambda # initializing lists test_list1 = [{'is' : 4}, {'for' : 7}, {"Gfg" : 10}, {"Best" : 1}, {"CS" : 8}] test_list2 = ["Gfg", "is", "Best", "for", "CS"] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # sorted() used to perform sort(), returns the result # to other variable, ordering handled using index() from order list res = sorted(test_list1, key = lambda ele: test_list2.index(list(ele.keys())[0])) # printing result print("The custom order list : " + str(res))
La lista original 1 es: [{‘is’: 4}, {‘for’: 7}, {‘Gfg’: 10}, {‘Best’: 1}, {‘CS’: 8}]
La lista original 2 es: [‘Gfg’, ‘is’, ‘Best’, ‘for’, ‘CS’]
La lista de pedidos personalizados: [{‘Gfg’: 10}, {‘is’: 4}, {‘Best’ : 1}, {‘para’: 7}, {‘CS’: 8}]
Método #2: Usar sort() + index() + keys() + lambda
Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de ordenar usando sort(), realiza la ordenación en el lugar, otras construcciones permanecen igual.
Python3
# Python3 code to demonstrate working of # Sort list of Single Item dictionaries according to custom ordering # Using sort() + index() + keys() + lambda # initializing lists test_list1 = [{'is' : 4}, {'for' : 7}, {"Gfg" : 10}, {"Best" : 1}, {"CS" : 8}] test_list2 = ["Gfg", "is", "Best", "for", "CS"] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # sort() used to perform inplace sort test_list1.sort(key = lambda ele: test_list2.index(list(ele.keys())[0])) # printing result print("The custom order list : " + str(test_list1))
La lista original 1 es: [{‘is’: 4}, {‘for’: 7}, {‘Gfg’: 10}, {‘Best’: 1}, {‘CS’: 8}]
La lista original 2 es: [‘Gfg’, ‘is’, ‘Best’, ‘for’, ‘CS’]
La lista de pedidos personalizados: [{‘Gfg’: 10}, {‘is’: 4}, {‘Best’ : 1}, {‘para’: 7}, {‘CS’: 8}]
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