Traffine I/O

日本語

2022-04-02

Enumの操作

はじめに

PythonのEnumは、列挙型を定義し操作するための強力な手段を提供します。列挙型は、名前付きのメンバーから成り、関連付けられた値を持つことにより、簡単な参照と取得が可能です。この記事では、PythonのEnumについて、Enumからキーを抽出する方法、Enumから値を抽出する方法、Enumを辞書に変換する方法、および値からキーを取得する方法など、さまざまな側面について詳しく説明します。

Enumからキーを抽出

PythonのEnumでは、キーは列挙型メンバーの名前を表します。キーを使用して特定のEnumの値にアクセスします。各Enumには固有のキーがあり、これらのキーは有効なPythonの識別子であることができます。

Pythonでは、Enumからキーを抽出するための優れた方法が提供されています。以下にシンプルなデモンストレーションを示します。

python
from enum import Enum

# Define an Enum
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

# Get list of keys
keys = [member.name for member in Color]

print(keys)  # Outputs: ['RED', 'GREEN', 'BLUE']

このコードでは、まずenumモジュールからEnumクラスをインポートし、その後にEnum Colorを定義しています。Color Enumは、REDGREENBLUEの3つのメンバーを持ちます。その後、Enumからキー(メンバーの名前)を抽出するために、リスト内包表記を使用しています。

Enumから値を抽出

Enumの値は、列挙型メンバーに割り当てられた個別の値を表します。これらの値は任意のデータ型にすることができ、キーと関連付けられることで簡単に参照できます。

Enumから値を取得するには、.valueプロパティを使用します。以下にその方法を示します。

python
from enum import Enum

# Define an Enum
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

# Get list of values
values = [member.value for member in Color]

print(values)  # Outputs: [1, 2, 3]

このコードでは、前述のColor Enumを定義しています。そして、リスト内包表記を使用して、各メンバーの値を.valueプロパティを使用して抽出しています。

Enumを辞書に変換

Enumの各メンバーはキーと値のペアであり、キーはメンバーの名前(Enumのキーとも呼ばれる)であり、値はそれに関連付けられた値です。このペアは、キーを使用して値を取得したり、逆に値からキーを取得したりするための関連付けを形成します。

Enumを辞書に簡単に変換することができます。これは、辞書内包表記を使用して行うことができます。以下に例を示します。

python
from enum import Enum

# Define an Enum
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

# Convert Enum to dictionary
enum_dict = {member.name: member.value for member in Color}

print(enum_dict)  # Outputs: {'RED': 1, 'GREEN': 2, 'BLUE': 3}

この例では、再びColor Enumを使用しています。Enumのキーが辞書のキーであり、Enumの値が辞書の値であるenum_dictという辞書を作成しています。

値からキーを取得

Enumにおけるキーと値の関係は1対1の対応関係です。各キーは一意の値にマップされ、各値は一意のキーに関連付けられます。そのため、値が与えられた場合、対応するキーを取得することができます。

以下は、Enum内の値からキーを取得する方法の例です。

python
from enum import Enum

# Define an Enum
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

# Get key from value
def get_key(val):
    for color in Color:
        if color.value == val:
            return color.name

print(get_key(2))  # Outputs: 'GREEN'

このコードでは、get_key()という関数を定義しています。この関数はColor Enumを繰り返し処理し、入力された値に一致するメンバーのキー(名前)を返します。

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!