enumerate

enumerate(sequence, [start=0])

  • sequence:可迭代序列
  • strat:迭代序号,可选,默认从0开始

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
Return an enumerate object. iterable must be a sequence, an iterator, or some other object which supports iteration. The next() method of the iterator returned by enumerate() returns a tuple containing a count (from start which defaults to 0) and the values obtained from iterating over iterable.

此函数等价于

1
2
3
4
5
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1

1. 一个简单的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
iter = range(3)
for i, j in enumerate(iter):
print("sequence:{}".format(i), j)

print()
for i, j in enumerate(iter, start=10):
print("sequence:{}".format(i), j)
'''
sequence:0 0
sequence:1 1
sequence:2 2

sequence:10 0
sequence:11 1
sequence:12 2
'''

2. 官方示例

给出一个官方的例子

1
2
3
4
5
6
7
8
9
10
11
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print("default start")
print(list(enumerate(seasons)))
print("start=1")
print(list(enumerate(seasons, start=1)))
'''
default start
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
start=1
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
'''
Error: API rate limit exceeded for 3.214.101.12. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)