繁体   English   中英

如何根据相同的值将两个字典嵌套在一起?

[英]How to nest two dictionaries together based on identical values?

我有两个字典,我试图将它们嵌套在一起以组织值。 我好迷路!


component_dict = {'11309': ['a','b', 'c'], 
                  '11525': ['d', 'e'] } 

sku_dict = {'a': 0.0,
           'b': 1500.0,
           'c': 1000.0,
           'd': 0.0,
           'e': 5.0" }

我试图嵌套这两个词典,使新词典看起来像这样:

       
final_dict: {'11309': {'a': 0, 'b': 1500,'c': 1000}, 
             '11525: {'d': 0, 'e': 5}}  

非常感谢你的帮助!

使用字典理解:

final_dict = {k: {x: sku_dict[x] for x in v} for k, v in component_dict.items()}

>>> final_dict
{'11309': {'a': 0.0, 'b': 1500.0, 'c': 1000.0}, 
 '11525': {'d': 0.0, 'e': 5.0}}

这个有点棘手,有一些库,例如 python 中的 collections,您可以使用它来帮助您更优雅地实现这一目标,但我写得更冗长一点以帮助解释。 请参阅下面的答案:

merged = {}

for x in component_dict:
    merged[x] = {y:sku_dict[y] for y in component_dict[x]}
    
print(merged)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM