Python – Suma asignada de valores de diccionario

Dado un diccionario con una lista de valores, nuestra tarea es extraer la suma de los valores, encontrados usando mapeos.

Entrada: test_dict = {4: [‘a’, ‘v’, ‘b’, ‘e’],

             1 : [‘g’, ‘f’, ‘g’],

             3: [‘e’, ‘v’]}, map_vals = {‘a’: 3, ‘g’: 8, ‘f’: 10, ‘b’: 4, ‘e’: 7, ‘v’: 2}

Salida: {4: 16, 1: 26, 3: 9}

Explicación: «g» tiene 8, «f» tiene 10 como magnitud, por lo tanto, 1 está mapeado por 8 + 8 + 10 = 26. (suma de la lista mapeada).

Entrada: test_dict = {4: [‘a’, ‘v’, ‘b’, ‘e’],

             1: [‘g’, ‘f’, ‘g’]}, map_vals = {‘a’: 3, ‘g’: 8, ‘f’: 10, ‘b’: 4, ‘e’: 7, ‘v’ : 2}

Salida: {4: 16, 1: 26}

Explicación: «g» tiene 8, «f» tiene 10 como magnitud, por lo tanto, 1 está mapeado por 8 + 8 + 10 = 26. (suma de la lista mapeada).

Método 1: usar bucle + elements()

En esto, cada clave se itera en el diccionario y cada valor de cada dict. se itera y se suma utilizando el diccionario de suma asignada inicializado.

Python3

# Python3 code to demonstrate working of
# Dictionary Values Mapped Summation
# Using loop + items()
  
# initializing dictionary
test_dict = {4 : ['a', 'v', 'b', 'e'],
             1 : ['g', 'f', 'g'],
             3 : ['e', 'v']}
               
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# values mapped 
map_vals = {'a' : 3, 'g' : 8, 'f' : 10,
            'b' : 4, 'e' : 7, 'v' : 2}
  
res = dict()
# items() getting keys and values
for key, vals in test_dict.items():
    sum = 0
    for val in vals:
          
        # summing with mappings
        sum += map_vals[val]
    res[key] = sum
  
# printing result
print("The extracted values sum : " + str(res))

Producción:

El diccionario original es: {4: [‘a’, ‘v’, ‘b’, ‘e’], 1: [‘g’, ‘f’, ‘g’], 3: [‘e’, ‘ v’]}

Los valores extraídos suman: {4: 16, 1: 26, 3: 9}

Método #2: Usando la comprensión del diccionario + sum()

En esto, realizamos la tarea de obtener la suma de cada valor usando sum(). La comprensión del diccionario se utiliza para obtener claves y asignar valores a la suma correspondiente de forma abreviada. 

Python3

# Python3 code to demonstrate working of
# Dictionary Values Mapped Summation
# Using dictionary comprehension + sum()
  
# initializing dictionary
test_dict = {4 : ['a', 'v', 'b', 'e'],
             1 : ['g', 'f', 'g'],
             3 : ['e', 'v']}
               
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# values mapped 
map_vals = {'a' : 3, 'g' : 8, 'f' : 10,
            'b' : 4, 'e' : 7, 'v' : 2}
  
# sum() gets sum of each mapped values 
res = {key : sum(map_vals[val] for val in vals) 
       for key, vals in test_dict.items()}
  
# printing result
print("The extracted values sum : " + str(res))

Producción:

El diccionario original es: {4: [‘a’, ‘v’, ‘b’, ‘e’], 1: [‘g’, ‘f’, ‘g’], 3: [‘e’, ‘ v’]}

Los valores extraídos suman: {4: 16, 1: 26, 3: 9}

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 *