在 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
计算为 ,否则计算为。True
x
l
False
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)