Python中如何使用enumerate()函数迭代列表或字符串时获取索引和值?
1. 介绍enumerate()函数
enumerate()函数是Python内置的函数之一,用于将一个可迭代的对象(如列表、字符串等)变成一个索引序列,同时可以返回每个索引位置的对应元素。该函数的作用是对一个列表或字符串进行编号(默认从0开始),一般用在for循环中。
2. enumerate()函数的语法格式
enumerate(iterable, start=0)
其中,iterable是要迭代的列表、字符串等可迭代对象,start是开始的索引(默认为0),可选参数。
3. 使用enumerate()函数迭代列表中的元素
(1) 迭代列表元素时,常规做法是通过for循环和range()函数实现:
lst = ['a', 'b', 'c', 'd']
for i in range(len(lst)):
print(i, lst[i])
运行结果:
0 a
1 b
2 c
3 d
可以看到,在使用range()函数迭代列表时,需要使用索引位置来获取相应的元素值。而使用enumerate()函数,则可以直接获取索引和值,代码如下:
for i, value in enumerate(lst):
print(i, value)
运行结果:
0 a
1 b
2 c
3 d
(2) 如果你想从某个指定的索引位置开始迭代,可以将start参数传递给enumerate()函数:
for i, value in enumerate(lst, start=1):
print(i, value)
运行结果:
1 a
2 b
3 c
4 d
可以看到,在指定开始索引为1时,列表的索引序列从1开始。
(3) 有时候,我们需要在列表中获取元素值和对应的索引位置,可以先使用enumerate()函数获取每个元素的索引位置,然后再根据索引位置获取相应的元素值,代码如下:
for i, index in enumerate(lst):
print("lst[{}] = {}".format(i, lst[i]))
运行结果:
lst[0] = a
lst[1] = b
lst[2] = c
lst[3] = d
4. 使用enumerate()函数迭代字符串中的元素
(1) 与列表类似,直接使用enumerate()函数进行迭代:
str = "hello"
for i, value in enumerate(str):
print(i, value)
运行结果:
0 h
1 e
2 l
3 l
4 o
(2) 可以通过字符串的切片方法获取指定位置的字符:
for i, index in enumerate(str):
print("str[{}] = {}".format(i, str[i]))
运行结果:
str[0] = h
str[1] = e
str[2] = l
str[3] = l
str[4] = o
5. 总结
enumerate()函数是Python中常用的内置函数之一,可以帮助我们更方便地获取列表和字符串的索引位置和元素值。在循环遍历时,使用该函数可以简化代码,提高代码的可读性和可维护性。
