在Python3中将枚举用作字典键时出现“键错误”

时间:2019-09-23 00:16:27

标签: python python-3.x dictionary enums

我想将枚举用作字典的键,但会遇到KeyError。

[A-Z][A-Za-z]+(?!\[[A-Z]+\])

运行此命令,我得到

#!/usr/bin/python3

from enum import Enum, unique
from typing import List

@unique
class Color(Enum):
    RED = "cherry"
    GREEN = "cucumber"
    BLUE = "blueberry"

allColors = {}

def countColors(colors: List[Color]):
    for c in colors:
        allColors[c] += 1

countColors([Color.RED, Color.RED, Color.BLUE, Color.GREEN])
for c in allColors:
    print(f"""{allColors[c]} {c.value} {c.name} pipes""")

documentation on dictionaries说,我可以将任何不可变值用作键,并且我假定枚举值是不可变的。

如何在字典中使用枚举作为键?

1 个答案:

答案 0 :(得分:-1)

是否设置了3种颜色,但在第18行中设置了4种颜色

countColors([Color.RED, Color.RED, Color.BLUE, Color.GREEN])

尝试

countColors ([Color.RED, Color.Blue, Color.Green])