使用 Python 的 enumerate() 函數,您可以在 for 循環中獲取索引號(計數、順序)以及可迭代對象(例如列表或元組)的元素。
本文解釋了 enumerate() 函數的基礎知識。
- 在for循環中獲取索引的函數:
enumerate()
- 普通 for 循環
- 使用 enumerate() 函數的 For 循環
- 從 1(非零值)開始 enumerate() 函數的索引
- 指定增量(步)
enumerate() 函數可用於獲取 for 循環中的索引。
普通 for 循環
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
使用 enumerate() 函數的 For 循環
指定一個可迭代對象(例如列表)作為 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
有關 format 函數的更多信息,請參閱以下文章,該函數用於用零填充數字。
指定增量(步)
enumerate() 函數中沒有參數指定增量步長,但可以通過以下方式實現
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie