Sobes.tech
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.