enumerate是python的内置函数,适用于python2.x和python3.x。该函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,返回一个enumerate对象实例。
简介
enumerate在Python中的用法为:
代码语言:javascript复制enumerate(sequence[,startindex=0])
对应函数为:
代码语言:javascript复制enumerate(iterable, start=0)
参数iterable为一个可迭代(可遍历)的数据对象实例,start表示索引起始值,返回的是一个enumerate对象。本质上enumerate也是一个可迭代的对象。
可以理解为enumerate自动为可迭代对象每一个元素加了一个索引值,然后返回了一个enumerate对象实例,而这个实例也是一个可迭代对象(可以使用for循环遍历每个元素)。
enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate。
实例
实例一:给数组中的“abcde”添加一个编号:
代码语言:javascript复制s = ['a', 'b', 'c', 'd', 'e']
e = enumerate(s)
print(e)
for index, value in e:
print('%s:%s' % (index, value))
输出结果:
代码语言:javascript复制<enumerate object at 0x10e9ae340>
0:a
1:b
2:c
3:d
4:e
实例二:从指定的索引开始。
代码语言:javascript复制s = ['a', 'b', 'c', 'd', 'e']
for index, value in enumerate(s, 1):
print('%s:%s' % (index, value))
输出结果:
代码语言:javascript复制1:a
2:b
3:c
4:d
5:e
案例三:统计文本行数。
文本abc.txt内容为:
代码语言:javascript复制1213
12abc12
123r
abc12
cd
abc12
defgh
实例代码如下:
代码语言:javascript复制with open("./abc.txt", 'r') as f:
count = 0
for index, line in enumerate(f):
count = 1
print(count)
f.close()
输出结果:
代码语言:javascript复制7
案例四:统计文本总行数及abc出现的次数与对应行。
代码语言:javascript复制line_no = 0
words = 'abc'
result_line_list = []
with open("./abc.txt", 'r') as f:
for index, line in enumerate(f):
if "abc" in line:
result_line_list.append(index)
# 文本总行数
line_no = 1
f.close()
print("文本总行数:%s" % line_no)
print(f"abc在文本中出现的次数为:{len(result_line_list)}次,具体行数为:{result_line_list}")
输出结果:
代码语言:javascript复制文本总行数:7
abc在文本中出现的次数为:3次,具体行数为:[1, 3, 5]
其中案例一,也展示了利用enumerate实现解析多个变量的功能,当然也可以实践一下更多层级的参数变量。