python - 将字符串与枚举进行比较的最有效方法是什么?
问题描述
我有以下枚举类:
class LabelEnum(str, Enum):
ENUM_ONE = "Enum One"
ENUM_TWO = "Enum Two"
ENUM_THREE = "Enum Three"
FOUR = "FOUR"
FIVE = "FIVE"
SIX = "SIX"
我想将一个字符串与这个枚举的所有成员进行比较,看看这个字符串是否存在于枚举类中。我可以通过以下代码段来做到这一点:
if string in LabelEnum.__members__:
pass
但我想将字符串 ( string.lower()
) 的小写字母与枚举成员的小写字母进行比较。我认为我不能以上述方式做到这一点。另一种方法是遍历成员,但这会减慢执行速度,我不希望这样。有什么方法可以在一行中比较这些的小写,并且比循环更有效?
解决方案
只需创建一个“LabelEnumLower”列表,其中包含转换为较低的 LabelEnum 的成员:
LabelEnumLower = [s.lower() for s in LabelEnum.__members__]
现在你可以做if string in LabelEnumLower:
。
推荐阅读
- vue.js - 默认选择的第一个选项卡
- python - 如何以某种模式获取 numpy 随机生成的数字来模拟一年中几天的天气
- azure - 通过 API 网关使用 Websockets 的事件中心生产者
- javascript - 过滤器在 Vuex 中过滤对象数组的操作中不起作用
- r - 如何在某些分支上定义某些测试?
- javascript - Google Apps 脚本 - 根据单元格中的值发送电子邮件
- javascript - React JS 从另一个组件渲染组件
- javascript - 隐藏过滤器选项卡上的加载更多按钮,全部(jQuery)除外
- git - 手动合并后如何从拉取请求中规范化合并
- python - ValueError:无法将大小为 78543360 的数组重塑为形状 (51135,4,32,32)