在python字典中为所有键添加新键

时间:2018-05-05 20:46:47

标签: python dictionary key tuples

我目前有这个词:

initial_dict = {'val_1': 2, 'val_2': 4}

我正在寻找一种更有效的方式来添加一个新的' foo'获取所有键的关键:

final_dict = {('foo' ,'val_1'): 2, ('foo' ,'val_2'): 4}

2 个答案:

答案 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']来达到同样的效果。 这样构建速度更快,成本更低,因为您可以重新使用已有的内容,而不是从头开始重新创建它。