子集上的 Python 枚举迭代

Fre*_*ed 5 python enums

我想迭代以下枚举的一个子集

class Items(enum.Enum):
    item1 = 0
    item2 = 1
    item3 = 2
    item4 = 3
    item5 = 4
    itm66 = 5
    item7 = 6
    item8 = 7
Run Code Online (Sandbox Code Playgroud)

说我想:

for item in (Items.item1, Items.item2, Items.item3, Items.item4):
        print(item.value)
Run Code Online (Sandbox Code Playgroud)

有捷径吗?还是我需要列出每个项目来迭代?

vas*_*ede 7

使用你可以迭代你的类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
Run Code Online (Sandbox Code Playgroud)