Skip to main content
 首页 » 编程设计

Python 一行获取枚举类列表的所有值的组合列表

2025年05月04日19dflying

我有 2 个枚举类定义如下:

class Enum1(Enum): 
    V1 = 'v1' 
    V2 = 'v2' 
 
class Enum2(Enum): 
   V1 = 'v1' 
   V2 = 'v2' 

我想要一个 Enum1 和 Enum2 中所有值的组合列表。我目前这样做:

enumList([Enum1, Enum2]) 
 
def enumList(Enums): 
    l = [] 
    for E in Enums: 
        l += list(map(lambda e: e, E)) 
    return  l 

运行这个,我得到:

[<Enum1.V1: 'v1'>, <Enum1.V2: 'v2'>, <Enum2.V1: 'v1'>, <Enum2.V2: 'v2'>] 

是否有实现相同功能的单行 enumList 实现?

我的尝试:

def enumList(Enums): 
    return sum([list(map(lambda e: e, E)) for E in Enums], []) 

请您参考如下方法:

map 的使用似乎没有必要。

您可以使用带有嵌套 for 的列表理解:

combined_list = [e for et in [Enum1, Enum2] for e in et]