Python 如何从枚举生成dict?

Python 如何从枚举生成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', &

如何从枚举生成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', <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
某个东西,那么你可以迭代它。我认为没有必要。