enumerate是python的内置函数,适用于python2.x和python3.x。该函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,返回一个enumerate对象实例。

简介

enumerate在Python中的用法为:

enumerate(sequence[,startindex=0])

对应函数为:

enumerate(iterable, start=0)

参数iterable为一个可迭代(可遍历)的数据对象实例,start表示索引起始值,返回的是一个enumerate对象。本质上enumerate也是一个可迭代的对象。

可以理解为enumerate自动为可迭代对象每一个元素加了一个索引值,然后返回了一个enumerate对象实例,而这个实例也是一个可迭代对象(可以使用for循环遍历每个元素)。

enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate。

实例

实例一:给数组中的“abcde”添加一个编号:

s = ['a', 'b', 'c', 'd', 'e']
e = enumerate(s)
print(e)
for index, value in e:
  print('%s:%s' % (index, value))

输出结果:

<enumerate object at 0x10e9ae340>
0:a
1:b
2:c
3:d
4:e

实例二:从指定的索引开始。

s = ['a', 'b', 'c', 'd', 'e']
for index, value in enumerate(s, 1):
  print('%s:%s' % (index, value))

输出结果:

1:a
2:b
3:c
4:d
5:e

案例三:统计文本行数。

文本abc.txt内容为:

1213
12abc12
123r
abc12
cd
abc12
defgh

实例代码如下:

with open("./abc.txt", 'r') as f:
  count = 0
  for index, line in enumerate(f):
      count += 1
  print(count)
f.close()

输出结果:

7

案例四:统计文本总行数及abc出现的次数与对应行。

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}")

输出结果:

文本总行数:7
abc在文本中出现的次数为:3次,具体行数为:[1, 3, 5]

其中案例一,也展示了利用enumerate实现解析多个变量的功能,当然也可以实践一下更多层级的参数变量。



Python中enumerate函数使用详解插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2023/04/29/python-enumerate/