Python Enumerate: uma explicação com exemplos

Trabalhar com listas e outros objetos iteráveis ​​é uma tarefa comum na programação Python . Às vezes, pode ser necessário percorrer esses iteráveis ​​enquanto também acompanha o índice ou a contagem do elemento atual. É aí que a função enumerate() integrada do Python vem em socorro.

A função enumerate() em Python fornece uma maneira conveniente de acessar tanto o índice de um item quanto o próprio item quando você está percorrendo uma lista ou qualquer objeto iterável.

Python Enumerate: uma explicação com exemplos

Essa função torna seu código mais Pythonico , legível e eficiente. Ele permite que você percorra os elementos e recupere seu índice e valor. Em vez de inicializar manualmente e incrementar um contador dentro do loop, você pode contar com enumerate() para fazer o trabalho para você.

Neste artigo, você aprenderá sobre a função interna enumerate() do Python, sua importância em seu código Python e seus casos de uso.

Vamos entrar nisso!

Índice

O que é a função enumerar do Python?

Imagine que você está trabalhando com uma estrutura de dados de lista e deseja fazer algo com cada item, mas também precisa saber a posição do item na lista.

Sem Python enumerate(), você pode decidir usar uma variável de contador que você incrementa em cada iteração do loop. Mas essa abordagem pode estar sujeita a erros e não é muito “Pythonic”.

Enumerate é uma função interna do Python que permite iterar sobre objetos iteráveis ​​enquanto mantém o controle do índice do item atual.

Agora que você entendeu o que é a função enumerate() no Python, vamos passar para a sintaxe da função enumerate() do Python na próxima seção!

Qual é a sintaxe da função enumerar do Python?

A sintaxe de uma função define como você deve usar essa função em seu código, incluindo quais argumentos ela usa e o que ela retorna.

Python Enumerate: uma explicação com exemplos

A função enumerate() usa a seguinte sintaxe:

enumerate(, start=0)
  • : Este é um parâmetro obrigatório e pode ser qualquer iterável do Python, como uma lista ou tupla.

  • start : Este segundo parâmetro é um parâmetro opcional que especifica o valor inicial do contador. Por padrão, é definido como 0.

O valor de retorno da função enumerate() é um objeto enumerate, que é um iterador com pares de (índice, elemento) para cada item no iterável fornecido.

Você pode usar esse iterador em um loop for para acessar o índice e o item simultaneamente.

O exemplo a seguir mostra como você pode usar a função enumerate() com uma lista:

fruits = ['apple', 'banana', 'cherry']

for index, item in enumerate(fruits):
    print(index, item)

Neste exemplo, enumerate() percorre os objetos enumerate, ou seja, a lista de frutas , e atribui um índice a cada item, começando em 0.

O loop for então descompacta o índice e o item do objeto enumerado. Isso permite que você execute operações com base no índice e no valor do item.

Estamos usando a função print para imprimir o índice e o item na tela. A saída do código é dada na imagem abaixo:

Python Enumerate: uma explicação com exemplos

Na saída, você pode ver que o índice inicial é 0. Esse é o valor padrão do índice atribuído automaticamente pelo interpretador Python.

No entanto, você também pode especificar um valor inicial diferente para o contador, fornecendo o parâmetro inicial opcional , conforme mostrado no código abaixo:

for index, item in enumerate(fruits, start=1):
    print(index, item)

A saída será semelhante à anterior. A única diferença será que o índice agora começa em 1.

Python Enumerate: uma explicação com exemplos

Então agora você tem um controle sobre a sintaxe da função enumerate() em Python. Mas, como acontece com qualquer ferramenta, é importante saber quando e onde usá-la.

É por isso que vamos explorar alguns casos de uso comuns para a função enumerate() na próxima seção!

5 casos de uso da função enumerar do Python

A função enumerate em Python é amplamente usada em cenários onde tanto o índice quanto o valor de um objeto iterável são importantes para o programador.

Listamos alguns dos casos de uso comuns para enumerar funções em Python abaixo.

1. Como usar Enumerate com listas Python

Em Python, uma lista é uma estrutura de dados integrada que permite armazenar vários itens em uma única variável. Pense em uma lista como um recipiente onde você pode colocar itens diferentes e manter sua ordem.

A função enumerate() pode ser usada em listas de várias maneiras, como:

A. Acessando elementos de lista e seus índices com Python Enumerate

Um dos casos de uso mais comuns para enumerate() é quando você precisa acessar os elementos de uma lista e seus índices. Enumerate permite que você faça isso de maneira limpa e eficiente.

Veja a seguir um exemplo de acesso a elementos de uma lista e seus índices:

fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
    print(f"At index {index}, the fruit is {fruit}.")

A saída deste código é dada na imagem abaixo:

Python Enumerate: uma explicação com exemplos

B. Modificando elementos de lista com Python Enumerate

Quando você precisa modificar os elementos de uma lista com base em seu índice, enumerate() é uma excelente ferramenta. Você pode acessar o índice dentro do loop e usá-lo para modificar a lista.

Veja a seguir um exemplo de modificação de elementos de lista com a função enumerate:

numbers = [1, 2, 3, 4, 5]

for i, num in enumerate(numbers):
    numbers[i] = num * 2

Esse código Python cria uma lista de números de 1 a 5. Em seguida, ele usa um loop for e a função enumerate() para iterar na lista.

Para cada iteração, ele multiplica o número atual (num) por 2 e reatribui-o à mesma posição na lista (numbers[i]).

O resultado é que todos os números da lista original são dobrados conforme a imagem abaixo:

Python Enumerate: uma explicação com exemplos

C. Comparando Elementos em Duas Listas com Python Enumerate

Se você estiver comparando elementos em duas listas diferentes, enumerate() pode fornecer o índice necessário para acessar elementos em ambas as listas ao mesmo tempo.

Veja a seguir um exemplo de uso da função enumerate para comparar elementos em duas listas:

list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
    if value != list2[i]:
        print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")

Neste código, primeiro definimos duas listas, list1 e list2. Em seguida, iteramos por list1 usando um loop for com enumerate(), que fornece o índice (i) e o valor de cada item.

If the current item in list1 doesn’t match the corresponding item in list2, it prints the index of the difference and the differing values from both lists.

The result of this code is shown below:

Python Enumerate: uma explicação com exemplos

2. How to Use Enumerate with Python Tuples

A tuple in Python is an ordered collection of elements, similar to a list. The only difference is that a tuple is immutable, meaning you can’t change its content after creation.

The following are some of the cases where you can use enumerate with Python tuples.

A. Using Python Enumerate() to Find an Element in a Tuple

When dealing with tuples in Python, you might often need to find if an element exists in a tuple.

The following example code demonstrates using enumerate to find elements in a tuple:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
    if fruit == 'mango':
        print(f"'mango' found at position {i}")

This code will print “‘mango’ found at position 2” because ‘mango’ is at index 2 in the tuple.

Python Enumerate: uma explicação com exemplos

B. Using Python Enumerate() to Create a Dictionary from a Tuple

If you’ve got a tuple and you need to transform it into a dictionary, Python’s enumerate() function can be your go-to tool.

The example code shows how you can create a dictionary from a tuple using enumerate:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')

fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)

This code will print a dictionary where the keys are the indices and the values are the elements from the tuple.

Python Enumerate: uma explicação com exemplos

3. How to Use Enumerate with Python Dictionaries

In Python, a dictionary is a mutable, unordered collection of key-value pairs, where each key must be unique. Think of it as a real-life dictionary: you look up a word (the key) and get its definition (the value).

Following are some of the cases where you can use enumerate with Python dictionaries:

A. Looping Through Keys and Values of a Dictionary

Você pode usar a função enumerate() para percorrer as chaves e os valores de um dicionário.

A função enumerate() adiciona um contador a um objeto iterável (como dicionários), permitindo o acesso ao valor do índice atual.

Um exemplo de função enumerate com dicionário Python é fornecido abaixo:

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
    print(i, k)

Neste código Python, primeiro criamos um dicionário chamado example_dict. Em seguida, usamos a função enumerate() para iterar no dicionário.

Para cada iteração, imprimimos a contagem do loop (que é dada por i e começa em 0) e a chave atual (que é k) do dicionário.

Python Enumerate: uma explicação com exemplos

B. Combinando Python Enumerate com Items Function

Você também pode acessar chaves e valores de um dicionário por meio da função items() junto com enumerate() . A função items() retorna uma coleção iterável de pares chave-valor como tuplas.

O exemplo abaixo demonstra como você pode usar a função items() com enumerate() :

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
    print(i, k, v)

Nesse código, criamos um dicionário chamado example_dict e, em seguida, usamos a função enumerate() para iterar os pares chave-valor do dicionário. Durante cada iteração, imprimimos o índice de loop 'i', a chave atual 'k' e seu valor correspondente 'v'.

Python Enumerate: uma explicação com exemplos

Agora você tem um conhecimento sólido de como usar a função enumerate() do Python em alguns cenários comuns. Mas enumerate() tem ainda mais a oferecer.

Vamos mergulhar em alguns casos de uso avançados envolvendo enumerate() na próxima seção!

3 Casos de uso avançados de Python Enumerate

Nesta seção, iremos além do básico e exploraremos alguns dos casos de uso avançados da função enumerate em Python.

Abordaremos os seguintes casos de uso:

  1. Usando Enumerate com classes Python

  2. Usando enumerar com classes enum

  3. Usando enumerar para reversão de ordem

Vamos entrar nisso!

1. Usando Enumerate com classes Python

Em sua jornada de programação em Python, você pode encontrar situações em que deseja usar enumerar com classes personalizadas.

Para conseguir isso, sua classe deve implementar o método iter() , que permite que ela seja iterável.

Considere uma classe Color que armazena nomes de cores e seus valores hexadecimais associados:

class Color:
    def __init__(self, colors: dict):
        self.colors = colors

    def __iter__(self):
        return iter(self.colors.items())

colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})

for index, (name, hex_value) in enumerate(colors):
    print(f"{index}: {name} => {hex_value}")

Neste código, estamos criando uma classe Color que recebe um dicionário de nomes de cores e seus valores hexadecimais correspondentes.

Quando você usa enumerate() no loop, ele fornece o índice junto com cada par chave-valor. Isso permite que você imprima o índice, o nome da cor e seu valor hexadecimal em uma string formatada.

Python Enumerate: uma explicação com exemplos

2. Usando Python Enumerate com classes Enum

O Python vem com uma classe Enum integrada , que permite criar tipos de enumeração com valores inteiros atribuídos automaticamente.

Por exemplo, dê uma olhada no seguinte código:

from enum import Enum, auto

class Direction(Enum):
    NORTH = auto()
    EAST = auto()
    SOUTH = auto()
    WEST = auto()

for index, direction in enumerate(Direction):
    print(f"{index}: {direction.name} => {direction.value}")

Neste script, estamos definindo uma direção de enumeração com quatro membros (NORTH, EAST, SOUTH e WEST) usando o módulo enum do Python. A função auto() atribui um valor automático a cada membro.

Quando você usa enumerate() no loop, ele fornece um índice junto com cada membro de enumeração. Isso permite imprimir o índice, o nome do membro e seu valor atribuído automaticamente em uma string formatada.

A saída deste código é dada na imagem abaixo:

Python Enumerate: uma explicação com exemplos

3. Usando Python Enumerate para reversão de ordem

Em alguns casos, você pode querer enumerar itens na ordem inversa. Você pode conseguir isso usando a função interna reversed() em combinação com enumerate() .

O exemplo a seguir demonstra a enumeração de itens na ordem inversa:

my_list = ["apple", "banana", "cherry"]

for index, item in enumerate(reversed(my_list)):
    print(f"{index}: {item}")

Neste código, estamos iterando sobre uma versão invertida de my_list usando enumerate(). Isso fornece o índice e o item da lista invertida em cada iteração. Ele permite que você imprima o índice e o item em uma string formatada.

Python Enumerate: uma explicação com exemplos

A função reversed() não modificará a sequência original; ele cria um novo iterador que apresenta os itens na ordem inversa.

Para saber mais sobre funções em Python, confira o vídeo a seguir:

Pensamentos finais

À medida que você continua em sua jornada em Python, é essencial dominar a função enumerate(). É uma ferramenta que melhora a legibilidade e a eficiência do código.

Usando enumerate(), você pode acessar tanto o índice quanto o valor em seus loops, reduzindo a necessidade de variáveis ​​de contador ou indexação. Ele simplifica seu código e o torna mais Pythonico.

Esteja você iterando por meio de listas, tuplas, strings ou dicionários, enumerate() provará ser uma ferramenta valiosa. Ao entender e praticar com enumerate(), você estará dando um passo significativo para aprimorar suas habilidades de programação em Python!

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.