Python 如何从枚举生成dict?
如何从枚举生成dictPython 如何从枚举生成dict?,python,python-3.x,Python,Python 3.x,如何从枚举生成dict from enum import Enum class Shake(Enum): VANILLA = "vanilla" CHOCOLATE = "choc" COOKIES = "cookie" MINT = "mint" dct = {} for i in Shake: dct[i]=i.value print(dct) 输出: {<Shake.VANILLA: 'vanilla'>: 'vanilla', &
from enum import Enum
class Shake(Enum):
VANILLA = "vanilla"
CHOCOLATE = "choc"
COOKIES = "cookie"
MINT = "mint"
dct = {}
for i in Shake:
dct[i]=i.value
print(dct)
输出:
{<Shake.VANILLA: 'vanilla'>: 'vanilla', <Shake.CHOCOLATE: 'choc'>: 'choc', <Shake.COOKIES: 'cookie'>: 'cookie', <Shake.MINT: 'mint'>: 'mint'}
{:‘香草’、:‘巧克力’、:‘饼干’、:‘薄荷’}
但我希望密钥是普通的,而不是编辑:不要这样做,请阅读下面的评论 您可以像这样使用
map
from enum import Enum
class Shake(Enum):
VANILLA = "vanilla"
CHOCOLATE = "choc"
COOKIES = "cookie"
MINT = "mint"
dct = dict(map(lambda item: (item.name, item.value), Shake))
你可以用字典来理解
从枚举导入枚举
类震动(枚举):
香草的
巧克力
COOKIES=“cookie”
MINT=“MINT”
dct={i.name:i.value for i in Shake}
打印(dct)
输出
{'VANILLA':'VANILLA','choc','COOKIES':'cookie','MINT':'MINT'}
您字典的变量名是dct
,但在for循环中,您引用的是dict[i]
。尝试dct[i]=dct[i]。尽管如此,值仍然没有意义,因为如果dct
为空,那么就没有dct[i]
可以从中获取值。为什么这比dict理解更好?显然不是。我只是不知道你可以迭代枚举:)嗯,map
也可以通过迭代枚举来工作-一般来说,如果你可以map
某个东西,那么你可以迭代它。我认为没有必要。