我有一个共同的要求,即从值中查找代码,并从代码中查找值。例如,我有一个颜色字典,可以让我为颜色派生一个代码。另一方面,我可能有一个代码并希望得到颜色。我通过创建我所谓的互惠词典来解决这个问题。在python中创建互惠词典
colour_list = [["red", "0"], ["green", "1"], ["blue", "2"]]
colours = {}
codes = {}
for colour in colour_list:
colours[colour[0]] = colour[1]
codes[colour[1]] = colour[0]
print colours
print codes
如果我知道一个代码,我可以看一下颜色在代码,如果我知道我的颜色可以看一下在颜色的代码。
这是解决这个问题的最佳数据结构吗?有没有更pythonic的方式?
听起来像是你想改为使用[enum](https://docs.python.org/3/library/enum.html)。 –
在Clojure中,这被称为*倒映图*。 *倒置字典*可能是Pythonic术语。而如果你有重复的价值?你想要什么行为? – Carcigenicate
通常在这种情况下没有任何键/值冲突,那么为什么不把所有内容都放在一个字典中呢?互补项可以添加:'d.update(list(zip(d.values(),d.keys())))'。 – ekhumoro