使用Python的enumerate()函数,你可以在for循环中获得索引号(计数,顺序)以及可迭代对象的元素,如列表或元组。
这篇文章解释了enumerate()函数的基本原理。
- 在for循环中获取索引的函数:
enumerate()
- 正常的for循环
- 对于使用enumerate()函数的循环来说
- 在1处开始enumerate()函数的索引(非零值)。
- 指定增量(步骤)。
enumerate()函数可以用来在for循环中获得索引。
正常的for循环
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
对于使用enumerate()函数的循环来说
指定一个可迭代的对象,如一个列表,作为enumerate()函数的参数。
你可以按照这个顺序得到索引号和元素。
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
在1处开始enumerate()函数的索引(非零值)。
如上例所示,默认情况下,enumerate()函数的索引从0开始。
如果你想从0以外的数字开始,可以指定一个任意的起始数字作为enumerate()函数的第二个参数。
要从头开始,请做以下工作。
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
当然,你可以从其他数字开始。
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
当你想创建一个连续编号的字符串时很有用;将起始编号指定为enumerate()函数的第二个参数比使用'i+1'从1开始更明智。
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
关于格式化函数的更多信息,请参见以下文章,该函数用于用零填充数字。
指定增量(步骤)。
在enumerate()函数中没有指定增量步骤的参数,但可以通过以下方式实现
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie