eunmerate在英文中是列举、枚举的意思,在python中eunmerate()是一个内置的函数,用于在一个可迭代或可遍历的对象(如列表、字符串、数组、字典)中,将对象组成一个一个序列和索引,可以同时获得索引和索引值。
enumerate函数原型:
enumerate(sequence, [start=0])
功能:将可循环序列sequence以start开始分别列出序列数据和数据下标;
即对一个可遍历的数据对象(如列表、元组或字符串),enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标;
enumerate()使用
对于一个列表list1,同时列出索引和每一个元素:
1 2 3 |
|
输出:
0 A
1 B
2 C
3 E
4 F
enumerate还可以接受第二个参数start,仍会从第一个索引值开始,遍历完所有的索引值,但列出来的索引起始值是从start开始(默认为0):
1 2 3 |
|
输出:
10 A
11 B
12 C
13 D
14 E
enumerate用于字符串:
1 2 3 |
|
输出:
0 A
1 B
2 C
3 E
4 F
-------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
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的使用:
例如:已知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 = ['语文', '数学', '英语']
# 录入五个学生三门课程的成绩
for row, name in enumerate(names):
for col, course in enumerate(courses):
scores[row][col] = float(input(f'请输入{name}的{course}成绩: '))
print(scores)