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