python枚举函数参数 python枚举类型enum用法

如何按行枚举 python enumerate【python枚举函数参数 python枚举类型enum用法】enumerate()说明
enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串) , enumerate将其组成一个索引序列,利用它可以同时获得索引和值
enumerate多用于在for循环中得到计数
例如对于一个seq,得到:
(0, seq[0]), (1, seq[1]), (2, seq[2])
1
1
enumerate()返回的是一个enumerate对象,例如:
enumerate()使用
如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
print i ,list1[i]123123
上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
print index, item
0 这
1 是
2 一个
3 测试1234567812345678
enumerate还可以接收第二个参数 , 用于指定索引起始值 , 如:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
print index, item
1 这
2 是
3 一个
4 测试1234567812345678
补充
如果要统计文件的行数,可以这样写:
count = len(open(filepath, 'r').readlines())11
这种方法简单,但是可能比较慢 , 当文件比较大时甚至不能工作 。
可以利用enumerate():
count = -1
for index, line in enumerate(open(filepath,'r')):
count= 1
Python的函数都有哪些【常见的内置函数】
1、enumerate(iterable,start=0)
是python的内置函数python枚举函数参数 , 是枚举、列举的意思,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 。
2、zip(*iterables,strict=False)
用于将可迭代的对象作为参数 , 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表 。如果各个迭代器的元素个数不一致 , 则返回列表长度与最短的对象相同,利用*号操作符,可以将元组解压为列表 。
3、filter(function,iterable)
filter是将一个序列进行过滤,返回迭代器的对象 , 去除不满足条件的序列 。
4、isinstance(object,classinfo)
是用来判断某一个变量或者是对象是不是属于某种类型的一个函数,如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例,
返回True 。如果object不是一个给定类型的的对象 , 则返回结果总是False
5、eval(expression[,globals[,locals]])
用来将字符串str当成有效的表达式来求值并返回计算结果,表达式解析参数expression并作为Python表达式进行求值(从技术上说是一个条件列表),采用globals和locals字典作为全局和局部命名空间 。
【常用的句式】
1、format字符串格式化
format把字符串当成一个模板 , 通过传入的参数进行格式化,非常实用且强大 。
2、连接字符串
常使用 连接两个字符串 。
3、if...else条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块 。其中if...else语句用来执行需要判断的情形 。
4、for...in、while循环语句
循环语句就是遍历一个序列,循环去执行某个操作,Python中的循环语句有for和while 。
5、import导入其python枚举函数参数他脚本的功能
有时需要使用另一个python文件中的脚本 , 这其实很简单,就像使用import关键字导入任何模块一样 。
干货 - 一文搞定Python 枚举enum是一组绑定到唯一常数值的符号名称python枚举函数参数,并且具备可迭代性和可比较性的特性 。我们可以使用enum创建具有良好定义的标识符python枚举函数参数,而不是直接使用魔法字符串或整数python枚举函数参数,也便于开发工程师的代码维护 。
我们可以使用class语法创建一个枚举类型,方便我们进行读写,另外,根据函数API的描述定义,我们可以创建一个enum的子类,如下:
enum自带属性name和value,日常工作中使用最多的也是这两个属性,我们打印看看结果:
枚举支持迭代和遍历顺序 。举个例子:
打印结果:
可以看出 , 遍历的每一个status是一个独立的枚举成员,拥有name和value属性 。
另外,我们也可以使用如下形式来进行枚举遍历:
上 面我们创建的枚举类中,value值是可以重复的,如果我们不想枚举类中的值重复可以是用装饰器@unique,举例如下:
我们运行后,报如下异常:
我们查看源代码,发现加入此装饰器的枚举类型,unique方法会将其__members__.items()进行遍历,追加到duplicates列表中,如果发现列表不为空,则抛出如上异常信息 。
此功能用于我们在使用枚举时 , 只在意枚举的标识符的含义而不在意值的情况下,但是如果需要与字符串或整数混合使用就要额外注意 。下面贴上官方的示例:
可以发现,使用auto()得到的是整数自增型,如果我们需要别的方式,只需要在我们的枚举类中,重写_generate_next_value_方法 。
枚举对象可以进行比较,但是不能进行值比较,如果需要进行值比较则需要枚举对象继承IntEnum对象 , 举个例子:
上 面的测试例子当中,我们创建python枚举函数参数了两个继承类型不一样的枚举类 , 可以看到继承了IntEnum的Season可以进行值的比较,而继承了Enum的Part则不能进行值比较 , 并且IntEnum类型与Enum类型也不能进行比较,即使属性和值一样 。
枚举中可以定义枚举类自身特有的方法,也可以复写一些已经在基类中定义好的方法,比如:__init__,__str__,__repr__,__hash__,__format__等 。举个例子:
上面我们定义了一个枚举类 , 其中value是一个枚举类型,我们可以定义__init__方法去对应元组中的值,我们也复写了__str__方法 。
打印方法看看效果:
从输出结果看,我们自定义和复写的方法都已经成功的应用到了Mood类中 。
不同于java中的枚举类,python中的枚举类是可以被继承的,但是被继承的枚举类规定其不能定义任何成员,但可以定义抽象方法 。举例如下:
测试用例可以完美运行,我们可以发现:第一个方法中 , 抛出了TypeError的异常;第二个测试方法中,MoreColor继承了Color , Color继承了Shade, 并且我们可以通过子类调用父类中的方法 。
主要介绍了enum模块的基础知识,包含枚举的创建、枚举成员和属性的访问、枚举方法的创建、枚举的继承等 。其中新版中的_ignore_、_order_、_missing_等可以学习官网的例子,另外enum的子类IntEnum、IntFlag等也是我们比较常用的枚举基类,本文中简单的介绍了IntEnum, 而IntFlag相比与IntEnum多了, |, ^, ~的操作,其他的子类大家感兴趣也可以了解 。
python枚举函数参数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于python枚举类型enum用法、python枚举函数参数的信息别忘了在本站进行查找喔 。

    推荐阅读