可用于返回值的字典类型:键

时间:2017-06-01 22:25:02

标签: python dictionary key

我正在制作一个我有字典dict['key'] = value的程序,但我希望能够使用dict['value']并让它返回key

Python中是否有这样的可逆数据结构?

我正在考虑将所有的对立面添加到我的字典中,因为我的所有关系都是1:1,但我认为这样做效率不高,因为我的条目数量是我需要的两倍。

2 个答案:

答案 0 :(得分:3)

我不知道python的标准集合库中有任何双向映射,但您可以查看bidict包:

>>> from bidict import bidict
>>> b = bidict(k='v')
>>> b['k']
'v'
>>> b.inv['v']
'k'

答案 1 :(得分:2)

对于像这样的单反向查找,只需使用

[k for k in dict if dict[k] == v]

如果你经常使用这种反向跟踪,那么通常的做法就是创建一个反向字典(请注意,在这种情况下,每个值多个键会导致有损进程) -

rev_dict = {v: k for k, v in dict.items()}

最后,您还可以考虑将数据作为长度为2的元组处理 - 比如

data = [(a, b), (c, d)]

如果一个项目不依赖另一个项目。