Python, 使用 enumerate() 函数。获取一个列表的元素和索引

商业

使用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