各位朋友过滤掉重名并不难。那么,如果发现有重名,你会如何解决呢?作为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中注释掉一段代码08/24
- ♥ 3个月还没入门Python,看这100名小伙伴3周学Python的杰作03/27
- ♥ python有什么编辑器08/28
- ♥ Python列表排序(方法、实例)11/20
- ♥ 深入理解python的自我12/07
- ♥ 什么是 Python 中的 Kafka10/25
内容反馈