假设我有两本字典:
animal = {
"CA": "Grizzly Bear",
"ID": "Appaloosa",
"NY": 'Beaver'
}
flower = {
"CA": "tulip",
"ID": "syringa",
"NY": 'rose'
}
如何将这两个词典组合成状态级别为>;的嵌套词典;动物/花卉>;价值例如:
dict3 = {'CA': {'animal':'Grizzly Bear','flower':'tulip'},
'ID': {'animal':'Appaloosa','flower':'syringa'},
'NY': {'animal':'Beaver','flower':'rose'}}
print(dict3)
上面的代码是手动工作的,但我想知道一种更有效的方法来处理任意数量的状态。我想我会用循环重新排列键/值,但我想知道是否有一种有效的方法
谢谢
看来最有效的方法是
它适用于O(N),其中N是dicts的大小之和
还要注意这是如何处理丢失的花或动物的情况的:dict将保持
None
。这可能是您想要的,也可能不是,这取决于您的用例试试这个:
或
最好的(Pythonic)方法是使用dict comprehension:
输出:
注意:
我用
&
在两本字典中得到了intersections个键。使用这个,我们确保使用两个dict中存在的键(用于生成新dict)(否则,您可能会得到KeyError)您可以使用此dict理解,它与键相交:
相关问题 更多 >
编程相关推荐