【问题标题】:key - key lookup in dict [duplicate]key - dict中的键查找[重复]
【发布时间】:2023-03-18 07:46:01
【问题描述】:

我正在尝试为我正在开发的 Web 应用程序构建一个简单的字典,其中包含我们所有英语与英国英语的差异。

有没有一种简单的方法来构建一个字典,其中值和键都可以在其中查找 python尽可能高效?我不希望按值循环遍历字典以供我们拼写。例如:

baz = {'foo', 'bar'}
# baz['foo'] => 'bar'
# baz['bar'] => 'foo'

【问题讨论】:

  • 使用两个不同的字典进行反向映射,或者将它们全部放在一个字典中。
  • bidict
  • 根据@juanpa.arrivillaga 的建议,您还可以实现自己的双向字典。参考this
  • 谢谢@AjayDabas 我真的很喜欢This

标签: python dictionary lookup


【解决方案1】:

您可以通过字典理解简单地进行反向字典:

baz = {'foo': 'bar'}
reversed_baz = {v: k for k, v in baz.items()}
print(reversed_baz)
baz.update(reversed_baz)
print(baz)
print(baz['foo'])
print(baz['bar'])

输出:

{'bar': 'foo'}
{'foo': 'bar', 'bar': 'foo'}
bar
foo

【讨论】:

    【解决方案2】:

    您还可以制作两个列表,一个给我们,另一个给英国。然后同时在列表中附加单词,然后它们在列表中将具有相同的索引,就像:
    Uk = [ 'foo1', bar1']
    Us = ['foo2', 'bar2']
    使用这些列表,您可以像这样查找:
    Us[ Uk.index('foo1') ]
    括号中的短语将返回 Uk 列表中的 foo1 索引,然后它看起来像:
    Us [0]
    所以这将返回 foo2。
    反之亦然。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 2019-09-15
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      相关资源
      最近更新 更多