Last updated: Apr 8, 2024
Reading timeยท4 min
To get an enum name by value, pass the value to the enumeration class and
access the name
attribute, e.g. Sizes(1).name
.
When the value is passed to the class, we get access to the corresponding enum
member, on which we can access the name
attribute.
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 print(Sizes(1).name) # ๐๏ธ SMALL print(Sizes(2).name) # ๐๏ธ MEDIUM print(Sizes(3).name) # ๐๏ธ LARGE
The Sizes(1)
syntax allows us to pass an integer to the class and get the
corresponding enum member.
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 value = 1 print(Sizes(value)) # ๐๏ธ Sizes.SMALL print(Sizes(value).name) # ๐๏ธ SMALL
Use a list comprehension to get a list of all of an enum's values or names.
On each iteration, access the value
or name
attributes on the enum member
to get a list of all of the enum's values or names.
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']
On each iteration, we access the value
attribute to get a list of all of the
enum's values.
Similarly, we can access the name
attribute on each iteration to get a list of
all of an enum's names.
List comprehensions are used to perform some operation for every element, or select a subset of elements that meet a condition.
You can use the same approach if you need to get a list of tuples containing the name and value of each enum member.
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)
The first element in each tuple is the name, and the second is the value of the enum member.
Use the in
operator if you need to check if a value is in an enum.
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')
The in operator tests
for membership. For example, x in l
evaluates to True
if x
is a member of
l
, otherwise it evaluates to False
.
You can use a simple for loop if you need to iterate over an enum.
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 for size in Sizes: print(size) print(size.name, size.value)
To access an enum's names and values:
Sizes.SMALL
.name
and value
properties to access the enum's names and values.from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 # โ Get the Enum's name print(Sizes.SMALL.name) # ๐๏ธ SMALL # ๐๏ธ access enum name by value print(Sizes(1).name) # ๐๏ธ SMALL print(Sizes['SMALL'].name) # ๐๏ธ SMALL # --------------------------------- # โ Get the Enum's value print(Sizes.SMALL.value) # ๐๏ธ 1 print(Sizes['SMALL'].value) # ๐๏ธ 1
As shown in the code sample, you can use the name
and value
properties on an
enum member to get the enum's name and value.
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 print(Sizes.MEDIUM.name) # ๐๏ธ MEDIUM print(Sizes.MEDIUM.value) # ๐๏ธ 2
You can also use square brackets to access enum members.
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 name = 'LARGE' print(Sizes[name].name) # ๐๏ธ MEDIUM print(Sizes[name].value) # ๐๏ธ 2
If you only have the value that corresponds to the enum member, pass it to the
enumeration class and access the name
attribute.
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 print(Sizes(1).name) # ๐๏ธ SMALL print(Sizes(2).name) # ๐๏ธ MEDIUM print(Sizes(3).name) # ๐๏ธ LARGE
This is only necessary when you need to get the name of an enum member by its value.
You can learn more about the related topics by checking out the following tutorials: