为了账号安全,请及时绑定邮箱和手机立即绑定

子集上的 Python 枚举迭代

子集上的 Python 枚举迭代

函数式编程 2021-07-16 18:15:27
我想迭代以下枚举的一个子集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条经验 获得超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


查看完整回答
反对 回复 2021-07-28
?
Helenr

TA贡献1780条经验 获得超4个赞

没有任何内置的东西Enum可以迭代子集,但是因为你可以list对它们使用:


>>> list(Items)[:4]

[<Items.item1: 0>, <Items.item2: 1>, <Items.item3: 2>, <Items.item4: 3>]


查看完整回答
反对 回复 2021-07-28
  • 3 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信