Middle
O que são iteradores e geradores em Python e qual é a diferença entre eles?
sobes.tech IA
Resposta da IA
Um iterador em Python é um objeto que implementa os métodos __iter__() e __next__(). Permite percorrer os elementos de uma coleção de forma sequencial sem a necessidade de carregar todos os dados de uma só vez na memória.
Um gerador é um tipo especial de iterador criado com funções usando a palavra-chave yield ou expressões geradoras. Os geradores calculam preguiçosamente os valores conforme necessário, o que economiza memória e permite trabalhar com sequências potencialmente infinitas.
Principais diferenças:
- Um iterador é uma interface geral para percorrer elementos sequencialmente.
- Um gerador é uma maneira conveniente de criar iteradores usando
yield.
Exemplo de gerador:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Aqui, count_up_to é um gerador que retorna números de 1 a n, um de cada vez.