enumerate的简单总结
首先,enumerate()是python的一个内置函数。
语法:
enumerate(sequence, [start=0])
参数:
sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
返回值:
返回 enumerate(枚举) 对象
1enumerate()对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
2返回一个计数器和元素值。计数器默认为0,也是元素的索引。如果不想在0开始你的计数,只需要使用可选start参数来设置偏移量。
3通过for循环得到enumerate里的索引计数。
a.将可迭代对象(Iterable)组成一个索引序列:
list1 = ['a','b','c','d']
for index, item in enumerate(list1):
print(index, item)
>>>
0 a
1 b
2 c
3 d
b.迭代器(Iterator)组成一个索引序列:
generator_ex = (x*x for x in range(10))
print(list(enumerate(generator_ex)))
>>>
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81)]
c.改变索引起始值:
list1 = ['a','b','c','d']
for index, item in enumerate(list1,start=100):
print index, item
>>>
100 a
101 b
102 c
103 d
扩展:
文件统计行数:
count = len(open(filepath, 'r').readlines())
上述操作,对于相对比较小的文件可以使用该方法,可是对于数据量相当大的文件就不适用了,否则会造成速度缓慢甚至不能正常工作。
count = 0
for index, line in enumerate(open(filepath,'r')):
count += 1
使用enumerate() 函数遍历文件,在以count作为累加器,求得文件行数。open函数相当于创建了一个迭代器,这样消耗的内存数量将大大减小。
一个关于程序员杂谈的公众号,欢迎关注!
有不足之处望留言指正
——————END——————
Programmer:柘月十七