Dada una lista con diccionarios como elementos, escriba un programa de Python para ordenar el diccionario según el valor máximo de base en un par de valores clave de un diccionario. En términos más simples, primero se verificará cada elemento de una lista (que es un diccionario), lo que significa que se comparará cada par de valores clave para encontrar el elemento con el valor máximo. Luego, en la lista, la clasificación se realizará sobre la base de qué elemento contiene el valor máximo así obtenido.
Ejemplos:
Entrada : test_list = [{1:5, 6:7, 9:1}, {2:6, 9:10, 1:4}, {6:5, 9:3, 1:6}]
Salida : [ {6: 5, 9: 3, 1: 6}, {1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}]
Explicación : 6 < 7 < 10, es el orden máximo de elementos.
- 6 es el máximo en el diccionario que tiene 5, 3, 6 como valores en un par clave-valor
- 7 es el máximo en el diccionario que tiene 5, 7, 1 como valores en un par clave-valor y
- 10 es el máximo en el diccionario que tiene 6, 10, 4 como valores en un par clave-valor.
Entrada : test_list = [{1:5, 6:7, 9:1}, {2:6, 9:10, 1:4}]
Salida : [{1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}]
Explicación : 7 < 10,
- 7 es el máximo en el diccionario que tiene 5, 7, 1 como valores en un par clave-valor
- 10 es el máximo en el diccionario que tiene 6, 10, 4 como valores en un par clave-valor
Método n. ° 1: usar valores() , max() y ordenar()
En esto, realizamos la tarea de clasificación en el lugar usando sort(), obtenemos el valor máximo usando max() y valores usando values(). La función externa se pasa como parámetro para lograr la funcionalidad requerida.
Ejemplo:
Python3
# getting max value def get_max(dicts): return max(list(dicts.values())) # initializing list test_list = [{1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}, {6: 5, 9: 3, 1: 6}] # printing original list print("The original list is : " + str(test_list)) # sorting dictionary list by maximum value test_list.sort(key=get_max) # printing result print("Sorted List : " + str(test_list))
Producción:
La lista original es: [{1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}, {6: 5, 9: 3, 1: 6}]
Lista ordenada: [{6: 5, 9: 3, 1: 6}, {1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}]
Método n.° 2: usar sorted(), lambda , max() y valores()
En esto, realizamos la clasificación usando sorted() y la función lambda, para proporcionar un filtrado de declaración única en lugar de llamar a la función externa.
Ejemplo:
Python3
# initializing list test_list = [{1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}, {6: 5, 9: 3, 1: 6}] # printing original list print("The original list is : " + str(test_list)) # sorting dictionary list by maximum value # one statement sort res = sorted(test_list, key=lambda dicts: max(list(dicts.values()))) # printing result print("Sorted List : " + str(res))
Producción:
La lista original es: [{1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}, {6: 5, 9: 3, 1: 6}]
Lista ordenada: [{6: 5, 9: 3, 1: 6}, {1: 5, 6: 7, 9: 1}, {2: 6, 9: 10, 1: 4}]
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