Python 中效率最高的 mapping/translation(带反向选项)

The most efficient mapping/translation (with reverse option) in Python

考虑一个非常大的 Python 类似的字典:

some_dict = {
    "val_1": "val_a",
    "val_2": "val_b",
    "val_x": "val_1",
    "val_y": "val_2",
    ### millions of one-to-one key-value pairs
    ### note that keys and values can overlap
}

我想使用这本字典有效地convert/translate 数据从一种表示到另一种表示(以及返回)。实现此目标的最有效方法是什么?

一种选择是创建 some_dict_reversed 然后使用字典查找进行反向转换,但我想避免重复数据。一定有更好的办法。

如果您想将值用作键,则需要对它们进行散列处理,这就是字典的作用。所以你需要第二本字典。

如果这些对确实代表一对一的关系,即它是双射关系,那么:

rev = { val: key for key, val in some_dict.items() }