获取 Python 中所有枚举值的列表

在 Python 中获取所有枚举值的列表

Get a list of all Enum values in Python

使用列表理解来获取所有枚举值的列表,例如
values = [member.value for member in Sizes]. 在每次迭代中,访问
value枚举成员的属性以获取所有枚举值的列表。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 values = [member.value for member in Sizes] print(values) # 👉️ [1, 2, 3] names = [member.name for member in Sizes] print(names) # 👉️ ['SMALL', 'MEDIUM', 'LARGE']
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

在第一个示例中,我们创建了一个包含枚举中所有值的列表。

在第二个示例中,我们使用该name属性创建了一个包含枚举中所有名称的列表。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 print(Sizes.SMALL.name) # 👉️ SMALL print(Sizes.SMALL.value) # 👉️ 1

如果您需要获取包含每个枚举成员的名称和值的元组列表,您可以使用相同的方法。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 result = [(member.name, member.value) for member in Sizes] # 👇️ [('SMALL', 1), ('MEDIUM', 2), ('LARGE', 3)] print(result)

每个元组中的第一个元素是名称,第二个元素是枚举成员的值。

in如果您需要检查一个值是否在枚举中,请使用运算符。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 values = [member.value for member in Sizes] print(values) # 👉️ [1, 2, 3] if 2 in values: # 👇️ this runs print('2 is in values')

in 运算符
测试成员资格

例如,如果是 的成员,则
x in l计算为 ,否则计算为TruexlFalse

for如果需要遍历枚举,也可以使用简单循环。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 for size in Sizes: print(size) print(size.name, size.value)

发表评论