当前位置: 首页 > 知识库问答 >
问题:

如何从python枚举类中获取所有值?

陶高峻
2023-03-14

我使用Enum4库创建enum类,如下所示:

class Color(Enum):
    RED = 1
    BLUE = 2

我想在某处打印[1,2]作为列表。如何实现这一点?

共有3个答案

聂昱
2023-03-14

您可以使用IntEnum:

from enum import IntEnum

class Color(IntEnum):
   RED = 1
   BLUE = 2


print(int(Color.RED))   # prints 1

要获取整数列表:

enum_list = list(map(int, Color))
print(enum_list) # prints [1, 2]
胡承悦
2023-03-14

根据@Jeff的回答,重构为使用类方法,以便可以对任何枚举重用相同的代码:

from enum import Enum

class ExtendedEnum(Enum):

    @classmethod
    def list(cls):
        return list(map(lambda c: c.value, cls))

class OperationType(ExtendedEnum):
    CREATE = 'CREATE'
    STATUS = 'STATUS'
    EXPAND = 'EXPAND'
    DELETE = 'DELETE'

print(OperationType.list())

生产:

['CREATE', 'STATUS', 'EXPAND', 'DELETE']
席烨
2023-03-14

您可以执行以下操作:

[e.value for e in Color]
 类似资料:
  • 问题内容: 我遇到了这个问题,我不知道需要迭代其实际值的实际类型。 任何想法如何从enumValue中提取其可能的值? 问题答案:

  • 问题内容: 假设是,我将如何产生给定序数的枚举值? 问题答案: 足够了。一条线; 足够简单。

  • 问题内容: 我有以下列举。 我需要将所有原始值存储为字符串数组(例如)。 我将此方法添加到枚举中。 但我收到以下错误。 找不到类型’GeneratorOf’的初始化程序,该初始化程序接受类型’(()-> _)’的参数列表 有没有更简单,更好或更优雅的方式来做到这一点? 问题答案: 有一个协议: 对于Swift <4.2 不,您无法查询包含的值。看到这篇文章。您必须定义一个列出所有值的数组。还可以在

  • 问题内容: 我有一个枚举,看起来像: 我有一个看起来像的测试班 输出为: 代替 我不确定这里出什么问题了吗?? 问题答案: 您需要 重写枚举的方法:

  • 假设我有以下代码: 是否有一种方法可以得到下面的数组?