enumerate⽤法总结-Python3
enumerate()说明
enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于⼀个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成⼀个索引序列,利⽤它可以同时获得索引和值enumerate多⽤于在for循环中得到计数
enumerate()使⽤
如果对⼀个列表,既要遍历索引⼜要遍历元素时,⾸先可以这样写:
1# _*_ coding: utf-8 _*_
2# __Author: "LEMON"
3
4
5 list = ['This', 'is', 'a', 'test']
6for i in range(len(list)):
7print(i, list[i])
上述⽅法有些累赘,利⽤enumerate()会更加直接和优美:
1# _*_ coding: utf-8 _*_
2# __Author: "LEMON"
3
4
5 list = ['This', 'is', 'a', 'test']
6#for i in range(len(list)):
7#    print(i, list[i])
8
9for index, item in enumerate(list):
10print(index, item)
11
12
python index函数
13 >>>
14 0 This
15 1 is
16 2 a
17 3 test
enumerate还可以接收第⼆个参数,⽤于指定索引起始值,如:
# _*_ coding: utf-8 _*_
# __Author: "LEMON"
list = ['This', 'is', 'a', 'test']
#for i in range(len(list)):
#    print(i, list[i])
#for index, item in enumerate(list):
for index, item in enumerate(list,1):
print(index, item)
>>>
1 This
2 is
3 a
4 test
补充
如果要统计⽂件的⾏数,可以这样写:
1 count = len(open(filepath, 'r').readlines())
这种⽅法简单,但是可能⽐较慢,当⽂件⽐较⼤时甚⾄不能⼯作。
可以利⽤enumerate():
1# _*_ coding: utf-8 _*_
2# __Author: "LEMON"
3
4
5 count = 0
6for index, line in enumerate(open('','r')): 7    count = count + 1
8print(count)
examples:
1# _*_ coding: utf-8 _*_
2# __Author: "LEMON"
3
4
5 week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
6 weekend = ['Sat', 'Sun']
d(weekend)
8for i,j in enumerate(week,1):
9print(i, j)
运⾏结果:
1 >>>
2
3 1 Mon
4 2 Tue
5 3 Wed
6 4 Thu
7 5 Fri
8 6 Sat
9 7 Sun