如何从Python Enum生成键为枚举名称的字典?
解决枚举字典键改为枚举名称的问题
嘿,这事儿超容易搞定!你现在的代码里用枚举实例当字典的键,要换成枚举的名称(比如VANILLA),只需要利用枚举成员自带的name属性就行啦。
修改后的代码如下:
from enum import Enum class Shake(Enum): VANILLA = "vanilla" CHOCOLATE = "choc" COOKIES = "cookie" MINT = "mint" dct = {} for i in Shake: dct[i.name] = i.value # 这里把i换成i.name,拿到枚举的名称作为键 print(dct)
执行这段代码后,输出就会变成你想要的样子:
{'VANILLA': 'vanilla', 'CHOCOLATE': 'choc', 'COOKIES': 'cookie', 'MINT': 'mint'}
简单说下原理:每个枚举成员都有两个实用属性——name就是你定义枚举时写的那个大写标识符(比如VANILLA),value是它对应的值。原来的代码用了枚举实例本身当键,现在替换成i.name,就正好拿到了枚举的名称作为字典键啦。
内容的提问来源于stack exchange,提问作者variable




