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)
使用多重解包(即解压缩)的方式,将每个元组中的值分别赋给val1
和val2
。