Iteradores e Iteráveis
Em Python, os conceitos de iteradores e iteráveis são fundamentais para trabalhar eficientemente com sequências de dados. Iteráveis são objetos que podem ser iterados (ou seja, percorridos) e os iteradores são objetos que mantêm o estado da iteração e retornam elementos sequenciais. Neste tutorial, vamos explorar iteradores e iteráveis em Python, entender como eles funcionam e como usá-los para percorrer listas, tuplas, dicionários e outros tipos de dados.
1. O Que São Iteráveis em Python?
Iteráveis são objetos que implementam o método __iter__()
, que retorna um iterador. Listas, tuplas, dicionários, conjuntos e strings são exemplos de iteráveis em Python.
2. O Que São Iteradores em Python?
Iteradores são objetos que implementam os métodos __iter__()
e __next__()
. O método __iter__()
retorna o próprio objeto iterador e o método __next__()
retorna o próximo valor da sequência. Quando não há mais itens para retornar, o método __next__()
levanta a exceção StopIteration
.
3. Criando um Iterador Simples:
Vamos criar um iterador simples que retorna números pares de 0 a 10.
class NumerosPares:
def __init__(self):
self.numero = 0
def __iter__(self):
return self
def __next__(self):
if self.numero <= 10:
resultado = self.numero
self.numero += 2
return resultado
else:
raise StopIteration
numeros_pares = NumerosPares()
for numero in numeros_pares:
print(numero) # Saída: 0, 2, 4, 6, 8, 10
4. Usando Iteráveis Embutidos em Python:
Python fornece várias estruturas de dados embutidas que são iteráveis, como listas, tuplas, conjuntos e dicionários.
# Iterando sobre uma lista
lista = [1, 2, 3, 4, 5]
for numero in lista:
print(numero)
# Iterando sobre um dicionário
dicionario = {'a': 1, 'b': 2, 'c': 3}
for chave, valor in dicionario.items():
print(chave, valor)
5. Usando a Função iter()
e next()
:
Você também pode criar um iterador usando a função iter()
e percorrê-lo usando a função next()
.
iterador = iter([1, 2, 3, 4, 5])
print(next(iterador)) # Saída: 1
print(next(iterador)) # Saída: 2
print(next(iterador)) # Saída: 3
Entender iteradores e iteráveis é essencial para trabalhar eficientemente com sequências de dados em Python. Ao utilizar iteradores e iteráveis, você pode percorrer listas, tuplas, conjuntos, dicionários e outros tipos de dados de forma eficaz, economizando recursos e tornando seu código mais legível.