python3 内置函数enumerate
一、简介:
该函数在字面上是枚举、列举的意思,用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,
同时列出数据和数据下标,一般用在 for 循环当中,可同时得到数据对象的值及对应的索引值。如对于下面的例子:
enumerate参数为可遍历/可迭代的对象(如列表、字符串)
enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate
enumerate()返回的是一个enumerate对象
>>> lst = [1, 2, 3, 4, 10, 5] >>> enumerate(lst) <enumerate object at 0x00000000032A3990>
二、 语法:
enumerate(iterable,start)
iterable:可迭代对象(列表、元祖、字典、迭代器、字符串等)
stat:索引序列的起始值
注意:此内置函数常用语for循环
三、enumerate的使用:
例如:已知lst = [1,2,3,4,5,6],要求输出:
0,1
1,2
2,3
3,4
4,5
5,6
>>> lst = [1,2,3,4,5,6] >>> for index,value in enumerate(lst): print ('%s,%s' % (index,value)) 0,1 1,2 2,3 3,4 4,5 5,6
#指定索引从1开始 >>> lst = [1,2,3,4,5,6] >>> for index,value in enumerate(lst,1): print ('%s,%s' % (index,value)) 1,1 2,2 3,3 4,4 5,5 6,6 #指定索引从3开始 >>> for index,value in enumerate(lst,3): print ('%s,%s' % (index,value)) 3,1 4,2 5,3 6,4 7,5 8,6
实例2:
1 b = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'] 2 for index,i in enumerate(b,1): 3 print("星期%d:%s"%(index,i)) 4 5 # 星期1:Monday 6 # 星期2:Tuesday 7 # 星期3:Wednesday 8 # 星期4:Thursday 9 # 星期5:Friday 10 # 星期6:Saturday 11 # 星期7:Sunday
补充:
如果要统计文件的行数,可以这样写:
count = len(open(filepath, 'r').readlines())
这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。
可以利用enumerate():
count = 0
for index, line in enumerate(open(filepath,'r')):
count += 1