Python 将dict转换为2键dict

Python 将dict转换为2键dict,python,dictionary,Python,Dictionary,我有一本字典,如下所示: {'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'):FlowDict中的i代表i}。但我不认为这是我需要走的方向

我有一本字典,如下所示:

{'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'):FlowDict中的i代表i}
。但我不认为这是我需要走的方向。感谢您的帮助。

嵌套字典理解在这里很方便:

>>> 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}

你的问题不太管用。这将只是合并dicts


但是,嵌套字典理解将适用于您:

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)