[英]Transform dict into 2 key dict
我有一本看起来像下面的字典:
{'AL': {'FL': 1, 'GA': 0, 'MS': 0, 'TN': 0},
'AR': {'LA': 0, 'MO': 0, 'MS': 0, 'OK': 0, 'TN': 16, 'TX': 0}
...}
我想将其转换为两个密钥对字典。
FlowDict[('AL','FL')]
返回{('AL','FL'): 1)}
我在另一个堆栈上看到了此错误,并尝试如下实现它: {i.pop('AL'): i for i in FlowDict}
。 但是我认为这不是我需要走的方向。 感谢任何帮助。
嵌套字典理解在这里很方便:
>>> FlowDict = {(key1,key2):value for key1 in d for key2,value in d[key1].items()}
>>> FlowDict
{('AL', 'FL'): 1,
('AL', 'GA'): 0,
('AL', 'MS'): 0,
('AL', 'TN'): 0,
('AR', 'LA'): 0,
('AR', 'MO'): 0,
('AR', 'MS'): 0,
('AR', 'OK'): 0,
('AR', 'TN'): 16,
('AR', 'TX'): 0}
您的问题中的内容将无法正常工作。 那只会合并字典。
但是,嵌套字典理解将为您工作:
test = {'AL': {'FL': 1, 'GA': 0, 'MS': 0, 'TN': 0},
'AR': {'LA': 0, 'MO': 0, 'MS': 0, 'OK': 0, 'TN': 16, 'TX': 0}}
flattened = {(main_key, sub_key): value for main_key, sub_dict in test.items() for sub_key, value in sub_dict.items()}
print(flattened)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.