我有一個共同的要求,即從值中查找代碼,並從代碼中查找值。例如,我有一個顏色字典,可以讓我爲顏色派生一個代碼。另一方面,我可能有一個代碼並希望得到顏色。我通過創建我所謂的互惠詞典來解決這個問題。在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