Python3枚举类如何处理重复名称?
2023-03-20 15:36:20 时间
筛选重复的名称,相信对于各位小伙伴不是什么难事。那么,大家发现有重复的名称会如何进行解决呢?作为一位python的粉丝,小编优先选择的事这类的方法。在处理重复名称方面,小编选择的是用python3里的枚举法进行操作。没听过的小伙伴也可以尝试下这种新方法,也许比以前的方法有好用的地方。
当存在枚举成员的名称有重复时,则后面的枚举成员相当于第一个枚举成员的别名,而且在实际使用中,就是使用的第一次出现的枚举成员。
class Shape(Enum): SQUARE = 2 DIAMOND = 1 CIRCLE = 3 ALIAS_FOR_SQUARE = 2
如下所示,ALIAS_FOR_SQUARE就是SQUARE的别名,就比如“星期日”和“星期天”都可以表示星期七一样,当遇到这种情况我们也可以这样用。
如果尝试遍历枚举类型,则后面重复的不会被打印出来。但是,如果想要获取别名,我们可以使用属性“__members__”,它是一个OrderedDict,包括所有定义的枚举名称,包括别名。
for name, member in Shape.__members__.items(): print( name, member )
枚举类型默认可以对相同的值使用别名,但有时我们需要确保枚举类型不能重复,我们也有办法使每个枚举值只出现一次。我们可以引入装饰器“@unique”,它会遍历枚举成员,如果发现有重复就会立即抛出“ValueError”。
from enum import Enum, unique @unique class Mistake(Enum): ONE = 1 TWO = 2 THREE = 3 FOUR = 3 Traceback (most recent call last): ValueError: duplicate values found in <enum 'Mistake'>: FOUR -> THREE
本篇Python3枚举类处理重复名称的方法到这里就结束了,操作代码都在上方,小伙伴们可以直接使用。
相关文章
- 精通Python网络爬虫:核心技术、框架与项目实战.3.4 网页分析算法
- GC悲观策略之Parallel GC篇
- Aviator(表达式执行引擎)发布1.0.1
- 《Flink官方文档》Python 编程指南测试版(一)
- 《Flink官方文档》Python 编程指南测试版(二)
- 淘宝开源metaq的python客户端
- 精通Python网络爬虫:核心技术、框架与项目实战导读
- Storm-源码分析-Topology Submit-Task
- 如何用Nagios远程执行插件(NRPE)来检测服务器内存使用率
- Spark 源码分析 -- task实际执行过程
- 《HttpClient官方文档》HTTP验证4.4-4.7
- 《HttpClient官方文档》1.3 HTTP执行上下文
- 大数据开发—常见问题(4)
- 《HttpClient官方文档》1.1 执行请求(一)
- 《HttpClient官方文档》1.1 执行请求(二)
- 《Jersey用户指南》–序言
- 《循序渐进学Spark 》Spark 编程模型
- python 文件操作
- 《Python数据挖掘:概念、方法与实践》扩展你的数据挖掘工具箱
- 《Python数据挖掘:概念、方法与实践》关联规则挖掘