Python中enumerate函数使用详解

2023-05-03 10:08:56 浏览数 (1)

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实现解析多个变量的功能,当然也可以实践一下更多层级的参数变量。

0 人点赞