从Python

时间:2017-06-14 01:25:55

标签: python python-3.x filter enums

我有一个枚举Colors(RED=0, BLACK=1, BLUE=2, WHITE=3, PINK=4)。我想获得与列表中的值对应的颜色列表。例如,如果列表是[1, 3, 4],我想获得一个过滤后的列表,例如[BLACK=1, WHITE=3, PINK=4]。我尝试搜索文档,但找不到任何功能。有可能吗?

2 个答案:

答案 0 :(得分:1)

from enum import Enum
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3
    PINK = 4

indexes  = [1, 3, 4]
for i in indexes:
    print((Color(i).name,i))

有一个ValueError,但对你的问题无关紧要。

答案 1 :(得分:0)

int的列表转换为Enum成员的匹配列表:

new_list = [Color(i) for i in old_list]