python - 在 python 中创建互惠字典

标签 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的方式?

最佳答案

使用 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

关于python - 在 python 中创建互惠字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45921896/

相关文章:

Python:我的 for 循环不会迭代列表中的所有项目

swift - 在 Swift 中通过 HTTP POST 方法发送字典数据

python - 从 python 中的字典列表中写出一个 csv 文件

android - 使用 geo : intent to display a map at a specified location and zoom level 显示多个标记

Python计算器: Key Error

python - 按每个子列表中的一些值对子列表列表进行分组

python - Django + IIS +?

python - Scapy设置类属性问题

python - 从 gui 启动和停止线程

python - 删除评论标签但不满足于 BeautifulSoup