enumerate()是python的内置函数,可以对可迭代对象进行迭代,返回下标index和对应的数据data。
可迭代对象包括:列表、元组、迭代器、文件等。
一、对列表、元组的迭代
注意enumerate不能迭代字典,因为字典是无序的,依靠关键字key确定元素,不是依index确定元素。
代码:
list1 = [10, 20, 30, 40]
for index, value in enumerate(list1):
print(index, " ", value)
tuple1 = (100, 200, 300, 400)
for index, value in enumerate(tuple1):
print(index, " ", value)
输出结果:
0 10
1 20
2 30
3 40
0 100
1 200
2 300
3 400
二、对txt文件的迭代
enumerate也可以对文本文件进行逐行读取迭代,返回值index为从0开始的行数,data为每行内容。
文本文件test_enumerate.txt 内容如下:
代码:
with open("test_enumerate.txt",'r',encoding='utf-8') as file:
for index,line in enumerate(file):
print(index," ", line, end="")
输出结果:
0 First line:deep learing
1 Second line: machine learning
2 Line three: artificial intelligence
3 这是一行乱码 dfo 44kf43i52#$$%$ 45$%$
4 end
其中 encoding=‘utf-8’ 是设置编码格式为UTF-8,否则无法读取中文。UTF-8是针对Unicode的一种可变长度字符编码,可以用来表示Unicode标准中的任何字符,因此逐渐成为电子邮件、网页等应用中优先采用的编码。
若txt文本中无中文,则可以不设置编码格式,直接读取文件即可。