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"、... 键结构。
添加回答
举报