2017-06-14 154 views
0

我有一個枚舉Colors(RED=0, BLACK=1, BLUE=2, WHITE=3, PINK=4)。我想獲取與列表中的值相對應的顏色列表。例如,如果列表是[1, 3, 4],我想獲得一個過濾列表,如[BLACK=1, WHITE=3, PINK=4]。我試圖通過文檔搜索,但找不到任何這樣做的功能。可能嗎?從Python中選擇枚舉

+4

什麼實現枚舉您使用的是? enum.Enum?你準確讀了哪些文件?爲可能有用的部分提供鏈接和引用 –

+0

因此,從像[[1,3,4]]這樣的列表中,您想要獲得[BLACK,WHITE,PINK]的權利? –

+0

嗯,也許像[(黑色,1),(白色,3),(粉紅色,4)]的元組] – Hellboy

回答

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,但它對你的問題沒有關係。

+0

我得到TypeError:object()不帶任何參數。 – Hellboy

+0

@Hellboy。我不相信你。 –

+0

@obgnaw。你在哪裏得到ValueError? –

0

要變換int個列表的Enum成員匹配列表:

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