优草派  >   Python

Python中如何去除重复项?Python枚举类处理重复名称的方法

翟嘉慧            来源:优草派

对于重复名称的处理,一般是出现在枚举类的成员中的,最近有很多的小伙伴在问,重复发名称要怎么样进行处理,为了解决大家所遇到的问题,今天主要介绍的是有关Python枚举类处理重复名称的方法,有需要的朋友可以一起来看看这篇文章。

Python中如何去除重复项?Python枚举类处理重复名称的方法

一、枚举类

在处理这种类型的数据时候,难免会出现名称有重复的情况,这种情况的表现形式就是后面的枚举成员就是可以对第一个枚举成员进行表示,将它看成是第一个枚举成员的另一个名字,在实际的操作中,使用的却是第一次出现的枚举成员,举个例子,代码如下:

class Shape(Enum):
    SQUARE =2
    DIAMOND = 3
    CIRCLE = 4
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

关于Python中如何去除重复项?Python枚举类处理重复名称的方法的内容就讲解到这里了,希望文章中的内容可以对大家的学习带来一定的帮助,如果还有其他问题,可以继续还想学习哦。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行