PythonのEnumクラスは、特定の数の固定された値を持つことができるデータ型です。これは、特定の値の集合を表現するのに非常に便利です。しかし、Enumの全ての値を一覧表示する方法は一見すると明らかではありません。この記事では、PythonのEnumから全ての値を取得し、それらをリストとして表示する方法を説明します。
Enumの値をリスト化する
PythonのEnumクラスの値をリスト化する最も簡単な方法は、リスト内包表記を使用することです。以下にその例を示します。
from enum import Enum
class Color(Enum):
RED = 1
BLUE = 2
# Enumの全ての値をリスト化する
values = [e.value for e in Color]
print(values) # 出力: [1, 2]
このコードでは、Color
という名前のEnumクラスを定義しています。このEnumにはRED
とBLUE
という2つの値があります。リスト内包表記を使用して、Enumの全ての値を新しいリストvalues
に格納しています。
Enumの値を再利用可能な方法でリスト化する
上記の方法はシンプルで直感的ですが、複数のEnumで同じ操作を行いたい場合には、再利用可能な方法が必要になります。そのためには、Enumクラスを拡張して、全ての値をリスト化するメソッドを追加することができます。以下にその例を示します。
from enum import Enum
class ExtendedEnum(Enum):
@classmethod
def list(cls):
return list(map(lambda c: c.value, cls))
class Color(ExtendedEnum):
RED = 1
BLUE = 2
# Enumの全ての値をリスト化する
print(Color.list()) # 出力: [1, 2]
このコードでは、ExtendedEnum
という新しいクラスを作成し、その中にlist
というクラスメソッドを追加しています。このメソッドは、Enumの全ての値をリスト化します。その後、この新しいクラスを継承してColor
Enumを作成します。これで、Color.list()
を呼び出すことで、Enumの全ての値をリストとして取得できます。
以上が、PythonのEnumから全ての値を取得し、それらをリストとして表示する方法です。これらのテクニックを使用することで、PythonのEnumをより効果的に使用することができます。