A função enumerate em Python – numerar elementos em uma sequência

7 Exemplos da função enumerate em Python

A função enumerate é uma ferramenta útil em Python que permite associar um índice a cada elemento de uma sequência (como uma lista, tupla ou string) durante uma iteração. Isso torna mais fácil acessar tanto o elemento em si quanto sua posição na sequência.

Neste tutorial, vou mostrar como funciona a função enumerate, sua sintaxe e as vantagens e desvantagens de seu uso.

Para Que Serve a Função enumerate?

A função enumerate é usada para numerar elementos em uma sequência enquanto iteramos sobre eles. Ela cria pares de índices e valores a partir dos elementos da sequência, permitindo que sejam acessados tanto o elemento quanto sua posição. Ou seja, basicamente a função adiciona um contador sobre um objeto iterável.

Essa funcionalidade é útil em situações onde necessitamos saber a posição de um elemento em uma sequência.

Sintaxe da Função enumerate

A sintaxe básica da função enumerate() é a seguinte:

enumerate(iterável, start=0)

onde:

  • iterável: O objeto que você deseja enumerar (por exemplo, uma lista, tupla, iterador, etc.).
  • start (opcional): O valor inicial do índice (posição a partir de onde começa a contagem). Por padrão, o valor inicial é 0

A função retorna um objeto enumerado que é um iterador contendo pares chave (índice) e valor.

Vantagens do Uso da Função enumerate

Existem algumas vantagens de se usar a função enumerate para trabalhar com conjuntos iteráveis, como por exemplo:

  1. Acesso aos Índices: A função enumerate facilita o acesso aos índices dos elementos em uma sequência, o que é útil em muitas situações de programação, como por exemplo contar o número de iterações completadas ao trabalhar com iteradores.
  2. Sintaxe Concisa: Ela fornece uma maneira concisa de enumerar elementos, evitando a necessidade de rastrear manualmente os índices em sequências.

Desvantagens do Uso da Função enumerate

Porém, a função enumerate também possui algumas desvantagens, que devem ser consideradas ao escolher as técnicas de programação a serem empregadas no desenvolvimento. Entre elas posso citar:

  1. Uso de memória: A função enumerate cria um objeto enumerado que armazena pares de índice e valor na memória, o que pode consumir um pouco mais de memória do que a iteração tradicional.
  2. Índices baseados em 0: Os índices gerados pela função enumerate são baseados em 0 por padrão, o que pode ser contra intuitivo em algumas situações.
  3. Nem sempre é necessária: Se não precisarmos acessar os índices e necessitarmos simplesmente iterar sobre os elementos, a função enumerate é desnecessária. Use iteração comum.

Sendo assim, a função enumerate é uma ferramenta útil para rastrear índices enquanto iteramos sobre uma sequência. No entanto, deve ser usada com moderação, especialmente se a economia de memória for uma preocupação e não for necessário usar os índices.

Em muitos casos, a iteração tradicional é mais do que suficiente.

Dito isto, vejamos alguns exemplos de como usar a função enumerate em Python.

Exemplos de enumerate em Python

Exemplo 1: Iterar Sobre uma lista de itens com enumerate

frutas = ["maçã", "banana", "laranja", "uva", "caju", "figo", "abacaxi", "framboesa"]
for indice, fruta in enumerate(frutas):
    print(f"Índice {indice}: {fruta}")

Neste exemplo, estamos iterando sobre uma lista de frutas e usando enumerate para associar um índice a cada fruta. O resultado será:

Índice 0: maçã
Índice 1: banana
Índice 2: laranja
Índice 3: uva
Índice 4: caju
Índice 5: figo
Índice 6: abacaxi
Índice 7: framboesa

Exemplo 2: Enumerar Linhas em um Arquivo de Texto

Suponha que tenhamos um arquivo de texto chamado “arquivo.txt” contendo várias linhas de texto com o seguinte conteúdo:

“É mais fácil pedir perdão do que permissão.”
Grace Hopper

Essa frase é muitas vezes usada para destacar a importância da inovação e da ação decisiva no campo da tecnologia e da programação.

Grace Hopper, uma pioneira da computação, foi conhecida por sua abordagem ousada e sua disposição para desafiar o status quo, o que a tornou uma figura notável na história da informática.

 Podemos empregar a função enumerate para numerar as linhas enquanto o arquivo é lido:

with open("arquivo.txt", "r") as arquivo:
    for numero_linha, linha in enumerate(arquivo, 1):
        print(f"Linha {numero_linha}: {linha.strip()}")

Neste exemplo, o script efetua a leitura do arquivo linha por linha e usa enumerate para numerar as linhas, começando em 1. O método .strip() é usado para remover espaços em branco e quebras de linha no final de cada linha.

Resultado:

Linha 1: "É mais fácil pedir perdão do que permissão."
Linha 2: Grace Hopper
Linha 3: 
Linha 4: Essa frase é muitas vezes usada para destacar a importância da inovação e da ação decisiva no campo da tecnologia e da programação.
Linha 5: 
Linha 6: Grace Hopper, uma pioneira da computação, foi conhecida por sua abordagem ousada e sua disposição para desafiar o status quo, o que a tornou uma figura notável na história da informática.

Exemplo 3: Enumerar Elementos em uma Matriz

Vamos criar uma matriz bidimensional (uma lista de listas) e usar enumerate para enumerar os elementos em cada linha.

matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for indice_linha, linha in enumerate(matriz):
    for indice_coluna, elemento in enumerate(linha):
        print(f"Elemento na linha {indice_linha}, coluna {indice_coluna}: {elemento}")

Resultado:

Elemento na linha 0, coluna 0: 1
Elemento na linha 0, coluna 1: 2
Elemento na linha 0, coluna 2: 3
Elemento na linha 1, coluna 0: 4
Elemento na linha 1, coluna 1: 5
Elemento na linha 1, coluna 2: 6
Elemento na linha 2, coluna 0: 7
Elemento na linha 2, coluna 1: 8
Elemento na linha 2, coluna 2: 9

Exemplo 4: Encontrar a Posição de um Elemento em uma Lista

Vamos criar uma lista de números e um elemento-alvo, informado pelo usuário. Usaremos então a função enumerate para encontrar a posição (índice) do elemento-alvo na lista.

numeros = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
alvo = int(input("Qual valor múltiplo de 10 deseja pesquisar?"))
for indice, numero in enumerate(numeros):
    if numero == alvo:
        print(f"O elemento {alvo} está na posição {indice}.")

Resultado:

Qual valor múltiplo de 10 deseja pesquisar?
40
O elemento 40 está na posição 3.

Exemplo 5: Iteração sobre os itens de uma tupla, ajustando o valor de inicio dos índices

linguagens = ("cobol", "c++", "python", "fortran", "kotlin", "javascript", "ruby", "lisp")
for indice, linguagem in enumerate(linguagens, start=10):
    print(f"Índice {indice}: {linguagem}")

Aqui, iteramos sobre uma lista com nomes de linguagens de programação e usamos enumerate com o parâmetro start para associar um índice, iniciando em 10, a cada linguagem.

Resultado:

Índice 10: cobol
Índice 11: c++
Índice 12: python
Índice 13: fortran
Índice 14: kotlin
Índice 15: javascript
Índice 16: ruby
Índice 17: lisp

Exemplo 6: Iterar sobre um objeto do tipo enumerate com laço for

# Lista de entrada
lista_cidades = ["Amsterdam", "Ushuaia", "São Paulo", "Manchester", "Osaka"]

# Criar objeto enumerate
obj_enumerate = enumerate(lista_cidades)

# Usar laço for para iterar sobre cada item no objeto enumerate
for item in obj_enumerate:
    # Imprimir o item correspondente a cada iteração
    print(item)

Agora, a iteração é realizada em um objeto do tipo enumerate criado previamente na aplicação a partir de elementos presentes em uma lista – no caso, nomes de cidades.

Resultado:

(0, 'Amsterdam')
(1, 'Ushuaia')
(2, 'São Paulo')
(3, 'Manchester')
(4, 'Osaka')

Exemplo 7 – Usar a função enumerate() em uma string

Neste exemplo é fornecida uma frase, e usando a função enumerate determinamos o número de índice de cada caractere digitado.

# String de entrada
string_entrada = 'Hoje é sexta-feira!'

# Gerar um objeto enumerate a partir da string
obj_enumerate = enumerate(string_entrada)

# Converter o objeto enumerate em uma lista e mostrar seu conteúdo, um caractere por linha
print(list(obj_enumerate))

Resultado:

[(0, 'H'), (1, 'o'), (2, 'j'), (3, 'e'), (4, ' '), (5, 'é'), (6, ' '), (7, 's'), (8, 'e'), (9, 'x'), (10, 't'), (11, 'a'), (12, '-'), (13, 'f'), (14, 'e'), (15, 'i'), (16, 'r'), (17, 'a'), (18, '!')]

Conclusão

Neste tutorial, mostrei os fundamentos, vantagens, desvantagens e as aplicações práticas da função enumerate em Python, uma ferramenta muito útil para iteração eficiente sobre sequências de valores. A capacidade de associar índices a elementos durante um loop não apenas simplifica o código, mas também amplia as possibilidades de manipulação de dados e criação de estruturas mais legíveis.

A função enumerate se destaca como uma solução elegante para situações em que a indexação de elementos é crucial. Seja na criação de compreensões de lista mais concisas, na implementação de lógicas de condição baseadas em índices ou no rastreamento simultâneo de múltiplas variáveis, a versatilidade desta função oferece um valioso incremento à caixa de ferramentas de qualquer programador Python.

Portanto, ao explorar o funcionamento dessa função, podemos podem otimizar o fluxo de trabalho, tornando os códigos mais compreensíveis e, em última análise, elevar o nível de eficiência e clareza nos projetos Python.

A função enumerate representa um recurso indispensável para aqueles que buscam aprimorar suas habilidades de programação e aprofundar seu entendimento da linguagem Python.

Colabore com a Bóson Treinamentos

Ajude o canal adquirindo meus cursos na Udemy:

Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: https://www.amazon.com.br/shop/bosontreinamentos

 

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*