我有 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]
