Search
Close this search box.
Iteráveis e iteradores: você conhece esses termos do Python?
iteráveis e iteradores

Posts Relacionados:

Em Python, iteráveis e iteradores são conceitos intimamente relacionados. Mas você sabe a diferença entre eles e as vantagens de se optar por um ou por outro?

Receba nossa newsletter

Iteráveis e iteradores em Python

Em Python, iteráveis e iteradores são conceitos intimamente relacionados e facilmente confundidos. Ambos são usados para realizar loop em coleções de dados. Porém, existe uma distinção fundamental entre eles. E essa distinção conta com vantagens adicionais.

A diferença entre iteráveis e iteradores

Um iterável é um objeto que contém um conjunto iterável de valores que você pode iterar. Ou seja, um iterável pode ser usado em um loop for para acessar seus elementos um de cada vez. Exemplos de iteráveis em Python incluem listas, tuplas, strings, dicionários (para chaves) e sets.

iterável e iterador em Python

Um iterador é um objeto que controla sua posição em um iterável e permite que você acesse elementos um de cada vez usando o método next(). Portanto, um iterador opera como um apontador que se move pelo iterável, retornando o próximo elemento cada vez que o método next() é chamado. Você pode obter um iterador de um iterável usando a função interna do Python iter().

Em Python, todo iterador é também um iterável porque pode ser passado para iter() e retornar a si. Nem todos os iteráveis são iteradores por si só. Por exemplo, uma string é iterável, mas uma string não é um iterador. Mas iteráveis são convertíveis em iteradores e isso tem vantagens. Vamos a elas.

Quais são as vantagens de usar iteradores ao invés de iteráveis?

A maior vantagem para usar iteradores no lugar de iteráveis é a eficiência da memória. Os iteradores processam elementos sob demanda, um de cada vez. Isso é particularmente útil ao lidar com grandes conjuntos de dados ou sequências infinitas (como ler linhas de um arquivo enorme). Com iteráveis como listas, todos os elementos são armazenados na memória antecipadamente, o que pode ser um desperdício se você precisar processar apenas um subconjunto ou não tiver memória suficiente para toda a coleção. Outra vantagem é que os iteradores permitem uma avaliação preguiçosa. Ou seja, seus elementos não são gerados ou calculados até que sejam realmente necessários no loop. Isso pode ser útil para operações complexas em que a criação de elementos pode ser computacionalmente cara.

De iterável a iterador em código

Sabemos que uma string é iterável, mas não é um iterador. Como consequência, como ilustrado no exemplo abaixo, se tentarmos usar o método next() com uma string, obtemos um erro:

				
					next("exemplo")
# TypeError: 'str' object is not an iterator
				
			

Mas um iterável como a string do exemplo acima pode ser facilmente transformada em um iterador com o método iter(). No exemplo ilustrativo abaixo, o método iter() converte a string (iterável) em um iterador e imprime suas letras uma a uma conforme o método next() é chamado.

				
					minha_string="exemplo"
minha_string=iter(minha_string) # converte string em iterador

print(next(minha_string)) # resultado: e
print(next(minha_string)) # resultado: x
print(next(minha_string)) # resultado: e
print(next(minha_string)) # resultado: m
print(next(minha_string)) # resultado: p

				
			

A mesma operação pode ser realizada com listas ou outros iteráveis do Python. Veja abaixo um pequeno exemplo:

				
					cidades = ["Fortaleza", "Rio de Janeiro", "Belo Horizonte"]
 
iterator_obj = iter(cidades) # converte lista em iterador
 
print(next(iterator_obj)) # Resultado: Fortaleza
print(next(iterator_obj)) # Resultado: Rio de Janeiro
print(next(iterator_obj)) # Resultado: Belo Horizonte
				
			

Com essa transformação simples, iteráveis como lista e strings se tornam objetos mais eficientes em Python.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 274

IA generativa img 274

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial