La clasificación tiene aplicaciones bastante vívidas y, a veces, podemos encontrarnos con el problema de que necesitamos clasificar el diccionario anidado por la clave anidada. Este tipo de aplicación es popular en el desarrollo web ya que el formato JSON es bastante popular. Analicemos ciertas formas en que esto se puede realizar.
Método #1: UsarOrderedDict() + sorted()
Esta tarea se puede realizar usando la función OrderedDict que convierte el diccionario a un orden específico como se menciona en sus argumentos manipulados por la función ordenada en él para ordenar por el valor de la clave pasada.
# Python3 code to demonstrate # Sort nested dictionary by key # using OrderedDict() + sorted() from collections import OrderedDict from operator import getitem # initializing dictionary test_dict = {'Nikhil' : { 'roll' : 24, 'marks' : 17}, 'Akshat' : {'roll' : 54, 'marks' : 12}, 'Akash' : { 'roll' : 12, 'marks' : 15}} # printing original dict print("The original dictionary : " + str(test_dict)) # using OrderedDict() + sorted() # Sort nested dictionary by key res = OrderedDict(sorted(test_dict.items(), key = lambda x: getitem(x[1], 'marks'))) # print result print("The sorted dictionary by marks is : " + str(res))
El diccionario original: {‘Nikhil’: {‘roll’: 24, ‘marks’: 17}, ‘Akash’: {‘roll’: 12, ‘marks’: 15}, ‘Akshat’: {‘roll’: 54, ‘marks’: 12}}
El diccionario ordenado por marcas es: OrderedDict([(‘Akshat’, {‘roll’: 54, ‘marks’: 12}), (‘Akash’, {‘roll’: 12 , ‘marcas’: 15}), (‘Nikhil’, {‘tirar’: 24, ‘marcas’: 17})])
Método #2: Usarsorted()
Podemos lograr mejor el resultado anterior si solo usamos la función ordenada, ya que devuelve el resultado en un formato más utilizable, dicta y realiza exactamente la tarea deseada.
# Python3 code to demonstrate # Sort nested dictionary by key # using sorted() # initializing dictionary test_dict = {'Nikhil' : { 'roll' : 24, 'marks' : 17}, 'Akshat' : {'roll' : 54, 'marks' : 12}, 'Akash' : { 'roll' : 12, 'marks' : 15}} # printing original dict print("The original dictionary : " + str(test_dict)) # using sorted() # Sort nested dictionary by key res = sorted(test_dict.items(), key = lambda x: x[1]['marks']) # print result print("The sorted dictionary by marks is : " + str(res))
El diccionario original: {‘Nikhil’: {‘marks’: 17, ‘roll’: 24}, ‘Akshat’: {‘marks’: 12, ‘roll’: 54}, ‘Akash’: {‘marks’: 15, ‘roll’: 12}}
El diccionario ordenado por marcas es: [(‘Akshat’, {‘marks’: 12, ‘roll’: 54}), (‘Akash’, {‘marks’: 15, ‘ tirada’: 12}), (‘Nikhil’, {‘marcas’: 17, ‘tirada’: 24})]
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