Geradores Python — escreva código supereficiente!

Jan 19 2023
Os geradores Python são um tipo especial de função que permite iterar sobre uma sequência de valores, sem precisar armazenar toda a sequência na memória. Eles são uma ferramenta poderosa para trabalhar com grandes conjuntos de dados ou para gerar sequências infinitas de valores.

Os geradores Python são um tipo especial de função que permite iterar sobre uma sequência de valores, sem precisar armazenar toda a sequência na memória. Eles são uma ferramenta poderosa para trabalhar com grandes conjuntos de dados ou para gerar sequências infinitas de valores.

O que é diferente de uma função normal?

Uma função geradora é definida como uma função normal, mas em vez de usar a palavra-chave return, ela usa a palavra-chave yield . Quando uma função geradora é chamada, ela retorna um objeto iterador, que pode ser usado para iterar sobre os valores gerados pela função.

Por que usar geradores?

Uma das principais vantagens dos geradores é que eles são eficientes em termos de memória. Como eles geram apenas um valor por vez, eles podem lidar com grandes conjuntos de dados ou sequências infinitas sem consumir muita memória.

Outra vantagem dos geradores é que eles são preguiçosos. Isso significa que eles só geram valores quando são necessários, em vez de gerar todos os valores antecipadamente. Isso pode ser útil para trabalhar com grandes conjuntos de dados ou para gerar sequências infinitas.

Ok... como usar?

A seguinte função geradora gera a sequência de Fibonacci:

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
print(next(fib)) # 1
print(next(fib)) # 2

for number in fibonacci():
    if number > 100:
        break
    print(number)

Os geradores também podem ser usados ​​em combinação com outros recursos do Python, como listas de compreensão ou o módulo itertools, para criar um código poderoso e expressivo. Você pode tentar você mesmo!

Boa sorte Shilo