Python | Sumar valores para cada clave en el diccionario anidado

Dado un diccionario anidado, tenemos que encontrar una suma de valor particular en ese diccionario anidado. Esto es básicamente útil en los casos en los que se nos proporciona un objeto JSON o hemos extraído una página en particular y queremos sumar el valor de un atributo en particular en los objetos.

Código n. ° 1: encuentre la suma de los valores de nitidez usando la función sum()

# Python code to find sum values within nested dictionaries
weapons = {'': None, 'sword': { 'steel': 151,
                                'sharpness': 100,
                                'age': 2,},
                                  
                     'arrow': {'steel': 120,
                               'sharpness': 205,
                               'age': 1,}}
                                 
sumValue1 = sum(d['sharpness'] for d in weapons.values() if d)
sumValue2 = sum(d['steel'] for d in weapons.values() if d)
  
print(sumValue1)
print(sumValue2)
Producción:

305
271

Código n.º 2: uso de la iteración para convertirlo en un par clave:valor.

# Python code to find sum values within nested dictionaries
  
weapons = {'': None, 'sword': { 'steel': 151,
                                'sharpness': 100,
                                'age': 2,},
                                  
                     'arrow': {'steel': 120,
                               'sharpness': 205,
                               'age': 1,}}
                                 
sum = 0
  
# iterating key value pair
for key ,value in weapons.items():
  
    if value and 'sharpness' in value.keys():
        # Adding value of sharpness to sum
        sum += value['sharpness'] 
  
# printing sum
print(sum)
Producción:

305

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *