2 回答

TA貢獻1780條經驗 獲得超4個贊
您的主要問題是您試圖跨越字符串值和變量名之間的實現邊界。這幾乎總是糟糕的設計。相反,從所有標簽作為字符串數據開始:
table = {
"dict1": {'a': '2', 'b': '10'},
"dict2": {'a': '25', 'b': '7'}
}
...或者,就您的原始帖子而言:
table = {
"dict1": dict1,
"dict2": dict2
}
從這里,您應該能夠反轉級別以獲得
invert = {
"a": {'dict1': '2', 'dict2': '25'},
"b": {'dict2': '10', 'dict2': '7'}
}
這足以讓您的處理到達需要的地方嗎?將數據保存在這樣的綜合字典中,將更容易根據需要迭代子字典。

TA貢獻1829條經驗 獲得超13個贊
正如@Prune建議的那樣,將結果構建為嵌套字典會更容易:
{'a': {'dict1': '2', 'dict2': '25'}, 'b': {'dict1': '10', 'dict2': '7'}}
這可以通過dict理解來實現:
{k: {"dict%d" % i: v2 for i, v2 in enumerate(v1, start=1)} for k, v1 in dd.items()}
如果您更喜歡在沒有理解的情況下這樣做,您可以這樣做:
result = {}
for k, v1 in dd.items():
inner_dict = {}
for i, v2 in enumerate(v1, start=1):
inner_dict["dict%d" % i] = v2
result[k] = inner_dict
注意:這假設您希望始終保持"dict1"、"dict2"、... 鍵結構。
添加回答
舉報