Python enumerate()添加序号

  • Post category:Python

Python enumerate()函数简介

在Python中,如果需要同时获取列表或其他可迭代对象中每个元素和它的序号(即索引),可以使用enumerate()函数。enumerate()函数将可遍历的数据对象(如列表、元组或字符串)组合为带有索引的数据,同时也可以设置索引的起始值。

其基本语法如下:

enumerate(iterable, start=0)

其中,iterable为可迭代对象,start为开始的索引值,默认为0。

enumerate()函数生成的是一个由元组构成的迭代器,每个元组由索引和对应的元素值组成。

enumerate()函数的使用方法举例

例一:枚举一个列表中的元素及其索引

lst = ['a', 'b', 'c', 'd']
for idx, val in enumerate(lst):
    print('Index:', idx, 'Value:', val)

输出结果为:

Index: 0 Value: a
Index: 1 Value: b
Index: 2 Value: c
Index: 3 Value: d

该示例中,通过enumerate()函数遍历了列表lst中的每个元素,并用for循环将元素及其对应索引输出。

例二:枚举一个字符串中的字符及其索引

s = 'abcdefg'
for idx, ch in enumerate(s):
    print('Index:', idx, 'Char:', ch)

输出结果为:

Index: 0 Char: a
Index: 1 Char: b
Index: 2 Char: c
Index: 3 Char: d
Index: 4 Char: e
Index: 5 Char: f
Index: 6 Char: g

该示例中同样利用了enumerate()函数遍历了字符串'abcdefg'中的每个字符,并输出了其对应的索引值和字符值。

注意事项

需要注意的是,当遍历的元素是列表嵌套元组的形式时,可以使用“多重解包”方式获取每个元组的索引及元素。示例如下:

lst2 = [('a', 1), ('b', 2), ('c', 3)]
for idx, (val1, val2) in enumerate(lst2):
    print('Index:', idx, 'Value1:', val1, 'Value2:', val2)

输出结果为:

Index: 0 Value1: a Value2: 1
Index: 1 Value1: b Value2: 2
Index: 2 Value1: c Value2: 3

其中,(val1, val2)使用多重解包(即解压缩)的方式,将每个元组中的值分别赋给val1val2