Python中enumerate用法详解
enumerate()是python的内置函数、适用于python2.x和python3.x
enumerate在字典上是枚举、列举的意思
enumerate参数为可遍历/可迭代的对象(如列表、字符串)
enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate
enumerate()返回的是一个enumerate对象
>>> lst = [1, 2, 3, 4, 10, 5] >>> enumerate(lst) <enumerate object at 0x00000000032A3990>
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
补充:
如果要统计文件的行数,可以这样写:
count = len(open(filepath, 'r').readlines())
这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。
可以利用enumerate():
count = 0
for index, line in enumerate(open(filepath,'r')):
count += 1
==========================
嵌套应用:
names = ['关羽', '张飞', '赵云', '马超', '黄忠'] courses = ['语文', '数学', '英语'] # 录入五个学生三门课程的成绩 # 错误 - 参考http://pythontutor.com/visualize.html#mode=edit # scores = [[None] * len(courses)] * len(names) scores = [[None] * len(courses) for _ in range(len(names))] for row, name in enumerate(names): for col, course in enumerate(courses): scores[row][col] = float(input(f'请输入{name}的{course}成绩: ')) print(scores)