在同一个键上将两个词典中的值一起添加

时间:2014-07-08 00:02:02

标签: python

如何在这个简单的示例中,如何将两个表索引词典中的项目一起添加?

table1 = {'item1': {'quantity': 3, 'value': 3.0}, \
          'item2': {'quantity': 10, 'value': 30} \
          }

table2 = {'item1': {'quantity': 5, 'value': 5.0}, \
          'item3': {'quantity': 7, 'value': 10.5} \
          }

newDic = {'item1': {'quantity': 8, 'value': 8.0}, \
          'item2': {'quantity': 10, 'value': 30}, \
          'item3': {'quantity': 7, 'value': 10.5} \
          }

我有一个函数可以将平面文件的内容解析并过滤到字典中。我想重新设计脚本来解析多个文件。每个表都具有完全相同的列标题。行具有相同的项目,具有不同的值,但某些文件具有其他项目。

1 个答案:

答案 0 :(得分:1)

您可以将table2添加到table1

table1 = {'item1': {'quantity': 3, 'value': 3.0}, \
          'item2': {'quantity': 10, 'value': 30} \
          }

table2 = {'item1': {'quantity': 5, 'value': 5.0}, \
          'item3': {'quantity': 7, 'value': 10.5} \
          }

for key, val in table2.items():
   if key not in table1:
       table1[key] = val
   else:
       for k, v in val.items():
           if k not in table1[key]:
               table1[key][k] = v
           else:
               table1[key][k] += v

print table1

{
  'item2': {'value': 30, 'quantity': 10}, 
  'item3': {'value': 10.5, 'quantity': 7}, 
  'item1': {'value': 8.0, 'quantity': 8}
}