2022-04-02

Enum Operations

Introduction

Python's Enum provides a powerful way to define and work with enumerated types. Enumerations consist of named members that have associated values, allowing for easy reference and retrieval. In this article, I will delve into various aspects of Python Enum, including extracting keys from an Enum, extracting values from an Enum, converting an Enum to a dictionary, and retrieving keys from values.

Extracting Keys from Enum

In Python's Enum, the keys represent the names of the enumeration members. They are used to access the specific Enum value. Each Enum has unique keys, and these keys can be any valid Python identifiers.

Python provides an elegant way to extract the keys from an Enum. Here's a simple demonstration:

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']

In this code, we first import the Enum class from the enum module and then define an Enum Color with three members: RED, GREEN, and BLUE. We then use a list comprehension to extract the keys (names of the members) from the Enum.

Extracting Values from Enum

Enum values represent the distinct values assigned to the enumeration members. These values can be of any data type and are associated with the Enum keys for quick and easy reference.

To get the values from an Enum, you can use the .value property. Here's how you can do it:

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]

In this code, we define the same Color Enum as before. Then, using list comprehension, we extract the values of each member using the .value property.

Converting Enum to Dictionary

Each member of an Enum is a key-value pair, where the key is the name of the member (also known as the Enum key), and the value is its associated value. This pair forms an association that allows you to retrieve the value by using the key and vice versa.

We can easily convert an Enum to a dictionary, which stores the enum members as key-value pairs. This can be done using a dictionary comprehension, as shown below:

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}

In this example, we again use the Color Enum. We create a dictionary enum_dict where the Enum keys are the dictionary keys, and the Enum values are the dictionary values.

Getting Key from Value

The relationship between the key and value in an Enum is a one-to-one correspondence. Each key maps to a unique value, and each value is associated with a unique key. Thus, given a value, we can find its corresponding key.

Here's an example of how you can get a key from a value in an 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'

In this code, we define a function get_key() which iterates over the Color Enum and returns the key (name) of the member whose value matches the input val.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!