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() }
考虑一个非常大的 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() }