在python中有一个嵌套字典,并希望以一种有效的方式附加到它

时间:2012-06-23 19:38:15

标签: dictionary nested python

我希望找到最好的pythonic方法来做到这一点。

嵌套字典看起来像这样(主脚本):

my_dict = { test: { 
                   test_a: 'true',
                   test_b: 'true
                  }

我正在导入一个具有返回数值的函数的模块。

我正在寻找一种从模块返回的字典中追加my_dict字典的方法。

即。模块中的函数:

def testResults1():
  results = 3129282
  return results

def testResults2():
  results = 33920230
  return results

def combineResults():
  Would like to combine results, and return a dictionary. Dictionary returned is:
  # Looking for best way to do this.

  test_results = { 'testresults1': 3129282, 
                   'testresults2': 33920230
                  }

然后我想将test_results字典附加到my_dict。 寻找最好的方法来做到这一点。

提前谢谢!

3 个答案:

答案 0 :(得分:0)

您在寻找dict.update()方法吗?

>>> d = {'a': 1, 'b': 2}
>>> d2 = {'c': 3}
>>> d.update(d2)
>>> d
{'a': 1, 'b': 2, 'c': 3}

答案 1 :(得分:0)

my_dict = {}

def testResults1():
  results = 3129282
  return results

def testResults2():
  results = 33920230
  return results

def combineResults():
  suite = [testResults1, testResults2]

  return dict((test.__name__, test()) for test in suite)  

my_dict.update(combineResults())
print my_dict

答案 2 :(得分:0)

import collections
my_dict = collections.defaultdict(lambda: {})

def add_values(key, inner_dict):
    my_dict[key].update(inner_dict)

您可以在图书馆文档here中了解collections.defaultdict