有没有比双向存储字典更好的方法来存储双向字典?[重复]
问题内容:
这个问题已经在这里有了答案 :
如何实现高效的双向哈希表? (7个答案)
7年前关闭。
给定生成的一对一字典(= bijection)
for key, value in someGenerator:
myDict[key] = value
逆查找字典可以通过添加来简单地创建
invDict[value] = key
到for
循环。但这是Python方式吗?我是否应该另外编写一个class Bijection(dict)
可以管理此反向字典并提供第二个查找功能的?还是这样的结构(或类似结构)已经存在?
问题答案:
我过去所做的工作是创建一个reversedict
函数,该函数将接受一个dict并返回相反的映射,如果我知道它是一对一的,则将值赋给键(两次看到相同的值会抛出异常),或者如果不是,则为键列表的值。这样,不必每次都需要反向查找时都同时构造两个字典,我可以像平常一样创建字典并在最后调用通用reversedict
函数。
但是,似乎乔恩在评论中提到的二分法解决方案可能是更好的方案。(我的reversedict
职能似乎是他的二分法~
运算符)。