📜  Python – 嵌套字典值求和

📅  最后修改于: 2022-05-13 01:55:29.862000             🧑  作者: Mango

Python – 嵌套字典值求和

有时,在使用Python字典时,我们可能会遇到嵌套记录的问题,我们需要对它的键值进行累积求和。这可以在 Web 开发和竞争性编程等领域有可能的应用。让我们讨论可以执行此任务的某些方式。

方法 #1:使用循环 + items() + values()
上述功能的组合可以用来解决这个问题。在此,我们遍历使用 values() 提取的所有值并执行求和任务。

# Python3 code to demonstrate working of 
# Nested Dictionary values summation
# Using loop + items() + values()
  
# initializing dictionary
test_dict = {'gfg' : {'a' : 4, 'b' : 5, 'c' : 8},
             'is' : {'a' : 8, 'c' : 10},
             'best' : {'c' : 19, 'b' : 10}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Nested Dictionary values summation
# Using loop + items() + values()
res = dict()
for sub in test_dict.values():
    for key, ele in sub.items():
        res[key] = ele + res.get(key, 0)
  
# printing result 
print("The summation dictionary is : " + str(res)) 
输出 :

方法 #2:使用Counter() + values()
上述方法的组合可用于执行此任务。在此,我们使用 Counter() 保存所需的频率,并且可以使用 values() 完成值的提取。

# Python3 code to demonstrate working of 
# Nested Dictionary values summation
# Using Counter() + values()
from collections import Counter
  
# initializing dictionary
test_dict = {'gfg' : {'a' : 4, 'b' : 5, 'c' : 8},
             'is' : {'a' : 8, 'c' : 10},
             'best' : {'c' : 19, 'b' : 10}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Nested Dictionary values summation
# Using Counter() + values()
res = Counter()
for val in test_dict.values():
    res.update(val)
      
# printing result 
print("The summation dictionary is : " + str(dict(res))) 
输出 :