Python: asignación de valor máximo en diccionario anidado

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)) 
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *