enumerate可以做什么?
1. 如何理解enumerate?
enumerate()是python的内置函数,用相当于给可迭代的对象(iterable object,比如string, list, dict, tuple, set等)增加了一个计数器。可以理解为带计数器的列表,字典,元组等。
2. 对可迭代对象进行索引
list_a = ['this', 'is', 'a', 'test']
list_b= list(enumerate(list_a, start =10)) # 两个参数,第一个参数为可迭代对象;第二个参数为计数器的起始值
list_c= list(enumerate(list_a, start =20))
print (list_b)
print(list_c)
print(type(enumerate(list_a))) # 测试enumerate()返回数据类型
运行输出结果:
[(10, 'this'), (11, 'is'), (12, 'a'), (13, 'test')]
[(20, 'this'), (21, 'is'), (22, 'a'), (23, 'test')]
<class 'enumerate'>
用for循环遍历enumerate()中的索引和值,代码如下:
list_a = ['this', 'is', 'a', 'test']
for index, value in enumerate(list_a, start=100):
print(f'计数器索引号码为:{index}。\t\t 数据值为{value}。')
运行输出结果如下:
计数器索引号码为:100。 数据值为this。
计数器索引号码为:101。 数据值为is。
计数器索引号码为:102。 数据值为a。
计数器索引号码为:103。 数据值为test。
3. 对读取到的文件行进行索引
更进一步,我们可以读取text文件中的行,并用enumerate()方法对行进行索引。
使用方法 :enumerate(filepath, start)
参数1:filepath = open('example.txt','r'),默认为项目路径,以只读方式打开example.txt文件。example.txt文件内容如下:
this is line one. this is line two. this is line three. this is line four.
参数2:start默认为0,可以自行指定
用for循环遍历enumerate,具体代码如下:
for index, line in enumerate(open('example.txt', 'r'), start=100):
print (f'The index of this line is {index} :', line)
运行结果如下:
The index of this line is 100 : this is line one.
The index of this line is 101 : this is line two.
The index of this line is 102 : this is line three.
The index of this line is 103 : this is line four.