Como iterar sobre uma lista recebendo o índice e o valor ao mesmo tempo em Python

Como iterar sobre uma lista recebendo o índice e o valor ao mesmo tempo em Python

Muitas vezes precisamos percorrer uma coleção e acessar tanto a posição (índice) quanto o conteúdo de cada elemento. Em vez de usar a sintaxe legada range(len(lista)), a função nativa enumerate() permite iterar de forma limpa e direta, retornando uma tupla contendo o índice e o valor a cada passo do loop.

Python
# Lista de tarefas pendentes para o dia
tarefas = ["Revisar Pull Request", "Implantar em Staging", "Atualizar documentação"]

# 1. Uso básico do enumerate(): gera o índice (0-based) e o valor nativamente
for indice, tarefa in enumerate(tarefas):
    print(f"Item {indice}: {tarefa}")

# 2. Alterando o índice inicial usando o parâmetro 'start' (ex: iniciar de 1)
print("\n--- Lista Numerada para o Usuário ---")
for posicao, tarefa in enumerate(tarefas, start=1):
    print(f"{posicao}. {tarefa}")

Pontos-chave

  • Substituição de range(len()): Usar enumerate() é a abordagem recomendada (pythonica), pois evita a necessidade de consultar manualmente a lista usando colchetes lista[i] em cada iteração.

  • Desempacotamento de Tuplas (Tuple Unpacking): A função enumerate() gera pares do tipo (índice, valor) a cada volta do loop, permitindo que você atribua ambos diretamente a duas variáveis distintas no cabeçalho do for.

  • Parâmetro start: Por padrão, a contagem dos índices começa em 0 (0-based). No entanto, definir start=1 (ou qualquer outro número inteiro) ajusta o valor inicial do contador sem alterar o deslocamento original dos elementos na memória.

  • Performance e Memória: O enumerate() retorna um iterador gerador (lazy evaluation), o que significa que ele produz os pares sob demanda e não consome memória extra alocando uma nova estrutura no sistema.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server