我目前有这个词:
initial_dict = {'val_1': 2, 'val_2': 4}
我正在寻找一种更有效的方式来添加一个新的' foo'获取所有键的关键:
final_dict = {('foo' ,'val_1'): 2, ('foo' ,'val_2'): 4}
答案 0 :(得分:2)
我相信你想要dict comprehension
>>> { ('foo', key): val for key, val in initial_dict.items()}
{('foo', 'val_1'): 2, ('foo', 'val_2'): 4}
答案 1 :(得分:1)
如果您真的想要,可以使用理解来重新构建字典:
new_dict = {('foo', k) : v for k, v in initial_dict.items()}
print(new_dict)
{('foo', 'val_1'): 2, ('foo', 'val_2'): 4}
要进行索引,您现在可以使用new_dict[('foo', 'val_1')]
。
但是,您似乎正在尝试构建一个多索引字典。为什么不把它变成嵌套的字典?
new_dict = {'foo' : initial_dict}
print(new_dict)
{'foo': {'val_1': 2, 'val_2': 4}}
现在,你只需要new_dict['foo']['val_1']
来达到同样的效果。
这样构建速度更快,成本更低,因为您可以重新使用已有的内容,而不是从头开始重新创建它。