在python中创建互惠的dicts

时间:2017-08-28 14:56:04

标签: python dictionary

我有一个共同的要求,即从值中查找代码,以及从代码中查找值。例如,我有一个颜色的词典,使我能够得到颜色的代码。另一方面,我可能有一个代码,并希望得到颜色。我通过创造我称之为互惠的词汇来解决这个问题。

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方式吗?

1 个答案:

答案 0 :(得分:6)

改为使用Enum

from enum import Enum

class Colour(Enum):
    red = 0
    green = 1
    blue = 2

然后你可以双向进行:

# getting the integer value for a name
Colour[name].value 

# getting the name for a value
Colour(value).name

在代码中,只需直接使用成员:

colour = Colour.red