用其他词典填充空字典

时间:2017-03-09 01:02:21

标签: python dictionary

我想知道如何用下面的方式用其他词典填充空字典:

newdict = {}

dict1 = {"key1": "value1"}
dict2 = {"key2": "value2"}
dict3 = {"key3": "value3", "key4": "value4"}

dicts_to_use = [dict1, dict3]

因此,列表用于指定要包含的列表,并且应填充此情况下的newdict,以便显示:

{'dict1': {'key1': 'value1'}, 'dict3': {'key3': 'value3', 'key4': 'value4'}}

我在引用列表中的字典并跨越字符串/字典类型时遇到麻烦

2 个答案:

答案 0 :(得分:2)

你不能这样做。您不能这样做的原因是因为no reliable way从对象'dict1'获取字符串dict1

现在,我理解你的实际代码中的变量名称可能与这个简化的例子有所不同,但同样的问题仍会让你失望:一般来说,一个对象无法告诉你它是什么名字绑定。它可能绑定多个名称,或者根本不绑定。

您必须重新考虑变量名称的方法。

答案 1 :(得分:-5)

使用eval。 (请注意,我更改了dicts_to_use以包含dicts的名称,而不是dicts本身......)

>>> newdict = {}
>>> 
>>> dict1 = {"key1": "value1"}
>>> dict2 = {"key2": "value2"}
>>> dict3 = {"key3": "value3", "key4": "value4"}
>>> 
>>> dicts_to_use = ["dict1", "dict3"]
>>> for d in dicts_to_use:
...     newdict[d] = eval(d)
... 
>>> newdict
{'dict1': {'key1': 'value1'}, 'dict3': {'key3': 'value3', 'key4': 'value4'}}
>>>