A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos asignar a la clave externa, el elemento con valor máximo en las claves internas. Este tipo de problema puede ocurrir en la programación diaria y en los dominios de desarrollo web. Analicemos una forma en que se puede realizar esta tarea.
Entrada : test_dict = {‘Manjeet’: {‘Inglés’: 19, ‘Matemáticas’: 1}, ‘Himani’: {‘Inglés’: 18, ‘Matemáticas’: 17}} Salida: [{‘Manjeet’
: ( ‘Inglés’, 19)}, {‘Himani’: (‘Inglés’, 18)}]Entrada : test_dict = {‘Manjeet’: {‘Maths’:10}}
Salida : [{‘Manjeet’: (‘Maths’, 10)}]
Método: Uso Counter().most_common() + items()
del bucle +
La combinación de las funciones anteriores constituye la forma bruta de resolver este problema. En esto, extraemos el elemento máximo usando most_common() y items() se usa para extraer el par clave-valor.
# Python3 code to demonstrate working of # Maximum value assignment in Nested Dictionary # Using Counter().most_common() + items() + loop from collections import Counter # initializing dictionary test_dict = {'Manjeet' : {'Maths':1, 'English':0, 'Physics':2, 'Chemistry':3}, 'Akash' : {'Maths':0, 'English':0, 'Physics':3, 'Chemistry':2}, 'Nikhil': {'Maths':4, 'English':2, 'Physics':2, 'Chemistry':3}, 'Akshat': {'Maths':1, 'English':0, 'Physics':2, 'Chemistry':0}} # printing original dictionary print("The original dictionary : " + str(test_dict)) # Maximum value assignment in Nested Dictionary # Using Counter().most_common() + items() + loop res = [] for key, val in test_dict.items(): cnt = Counter(val) res.append({key : cnt.most_common(1)[0]}) # printing result print("Maximum element key : " + str(res))
El diccionario original: {‘Nikhil’: {‘Química’: 3, ‘Física’: 2, ‘Matemáticas’: 4, ‘Inglés’: 2}, ‘Akash’: {‘Química’: 2, ‘Física’: 3, ‘Matemáticas’: 0, ‘Inglés’: 0}, ‘Akshat’: {‘Química’: 0, ‘Física’: 2, ‘Matemáticas’: 1, ‘Inglés’: 0}, ‘Manjeet’: { ‘Química’: 3, ‘Física’: 2, ‘Matemáticas’: 1, ‘Inglés’: 0}}
Clave máxima de elementos: [{‘Nikhil’: (‘Matemáticas’, 4)}, {‘Akash’: (‘Física’, 3)}, {‘Akshat’: (‘Física’, 2)}, {‘Manjeet ‘: (‘Química’, 3)}]
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