Usando a função Python enumerar(), pode obter o número de índice (contagem, ordem), bem como os elementos de um objecto iterável como uma lista ou tuple in a for loop.
Este artigo explica os princípios básicos da função enumerar().
- Função para obter o índice num laço para:
enumerate()
- Normal para laço
- Para loop usando a função enumerar()
- Iniciar o índice da função enumerar() a 1 (um valor não nulo)
- Especificar o incremento (passo)
A função enumerar() pode ser usada para obter o índice num laço de for
Normal para laço
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Para loop usando a função enumerar()
Especificar um objecto iterável tal como uma lista como o argumento da função enumerar().
Pode obter o número de índice e o elemento por essa ordem.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Iniciar o índice da função enumerar() a 1 (um valor não nulo)
Como mostrado no exemplo acima, por defeito, o índice da função enumerar() começa a partir de 0.
Se quiser começar com um número diferente de 0, especifique um número inicial arbitrário como o segundo argumento da função enumerar().
Para começar do zero, faça o seguinte.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Claro, pode começar com outros números.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Útil quando se pretende criar uma cadeia sequencialmente numerada; é mais inteligente especificar o número inicial como o segundo argumento da função enumerar() do que usar 'i+1' para começar a partir de 1.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Ver o artigo seguinte para mais informações sobre a função de formato, que é utilizada para preencher números com zeros.
- Artigos relacionados:Saída de zeros recheados, números hexadecimais, etc. com a função Python()
Especificar o incremento (passo)
Não há argumento para especificar o passo incremental na função enumerar(), mas pode ser alcançado fazendo o seguinte
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie