我想迭代以下枚舉的一個子集class Items(enum.Enum): item1 = 0 item2 = 1 item3 = 2 item4 = 3 item5 = 4 itm66 = 5 item7 = 6 item8 = 7說我想:for item in (Items.item1, Items.item2, Items.item3, Items.item4): print(item.value)有捷徑嗎?還是我需要列出每個項目來迭代?
3 回答

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
使用itertools.islice您可以遍歷Enum類的一部分
from enum import Enum
from itertools import islice
class Items(Enum):
item1 = 0
item2 = 1
item3 = 2
item4 = 3
item5 = 4
itm66 = 5
item7 = 6
item8 = 7
for i in islice(Items, 4):
print(i.value)
# 0
# 1
# 2
# 3

Helenr
TA貢獻1780條經驗 獲得超4個贊
沒有任何內置的東西Enum可以迭代子集,但是因為你可以list對它們使用:
>>> list(Items)[:4]
[<Items.item1: 0>, <Items.item2: 1>, <Items.item3: 2>, <Items.item4: 3>]
添加回答
舉報
0/150
提交
取消