Python – Suma de clave de tupla personalizada en diccionario

A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos realizar una suma de grupo de valores, de cierta clave en un índice particular de claves de tupla del diccionario. Este problema es bastante personalizado, pero puede tener aplicación en dominios que giran en torno al procesamiento de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada :
test_dict = {(‘a’, ‘b’): 14, (‘c’, ‘a’): 16, (‘a’, ‘c’): 67}
K = ‘c’, idx = 1
Salida : 16

Entrada :
test_dict = {(‘a’, ‘b’): 14, (‘c’, ‘a’): 16, (‘a’, ‘c’): 67}
K = ‘c’, idx = 2
Salida : 67

Método #1: Usar la sum()expresión del generador +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la suma usando sum() y realizamos la tarea de filtrar usando la expresión del generador.

# Python3 code to demonstrate working of 
# Custom Tuple Key Summation in Dictionary
# Using sum() + generator expression
  
# initializing dictionary
test_dict = {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K 
K = 'a'
  
# initializing index
idx = 1
  
# Custom Tuple Key Summation in Dictionary
# Using sum() + generator expression
res = sum(val for key, val in test_dict.items() if key[idx - 1] == K)
      
# printing result 
print("The grouped summation : " + str(res)) 
Producción :

The original dictionary is : {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
The grouped summation : 81

Método #2: Usarsum() + map() + lambda
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de realizar la suma usando sum() y map() + lambda se usa para realizar la tarea de verificar las condiciones.

# Python3 code to demonstrate working of 
# Custom Tuple Key Summation in Dictionary
# Using sum() + map() + lambda
  
# initializing dictionary
test_dict = {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K 
K = 'a'
  
# initializing index
idx = 1
  
# Custom Tuple Key Summation in Dictionary
# Using sum() + map() + lambda
res = sum(map(lambda sub: sub[1], filter(lambda ele: ele[0][idx - 1] == K,
                                                     test_dict.items())))
      
# printing result 
print("The grouped summation : " + str(res)) 
Producción :

The original dictionary is : {('a', 'b'): 14, ('c', 'a'): 16, ('a', 'c'): 67, ('b', 'a'): 17}
The grouped summation : 81

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 *