Python中的enumerate()函数
enumerate()函数用于遍历序列中的元素以及它们对应的下标,如list、tuple、string等。
先举一个遍历列表中元素以及元素下标的栗子:
mylist = ['a', 'b', 'c', 'd', 'e']
for i in range(len(mylist)):
print(i, mylist[i])
# 0 a
# 1 b
# 2 c
# 3 d
# 4 e
但这样的方法实际上有些累赘,在很多应用中并不方便,再来看一下应用enumerate()函数之后的栗子:
mylist = ['a', 'b', 'c', 'd', 'e']
for idx, value in enumerate(mylist):
print(idx, value)
# 0 a
# 1 b
# 2 c
# 3 d
# 4 e
enumerate()函数的返回值也可以通过列表直接查看:
mylist = ['a', 'b', 'c', 'd', 'e']
print(list(enumerate(mylist)))
# [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]
enumerate()函数实际用例
给定一列表,寻找列表中给定元素的所有下标值,代码如下:
def findSeq(seq, elem):
return [idx for idx, value in enumerate(seq) if value == elem]
seq = ['a', 'b', 'c', 'd', 'e', 'a', 'b', 'a', 'c', 'd', 'a']
index = findSeq(seq, 'a')
print(index)
# [0, 5, 7, 10]