【问题标题】:Dictionary type that can be used to return value:key可用于返回值的字典类型:key
【发布时间】:2017-06-01 22:25:02
【问题描述】:

我正在开发一个程序,其中有一个字典 dict['key'] = value,但我也希望能够使用 dict['value'] 并让它返回 key

在 Python 中有这样的可逆数据结构吗?

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

【问题讨论】:

标签: python dictionary key


【解决方案1】:

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

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

【讨论】:

    【解决方案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)]
    

    如果一项不依赖于另一项。

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多