Facebook pixel
>Blog>Ciência de Dados
Ciência de Dados

Python: Aprenda a utilizar o yield para otimizar seu código

O yield no Python é uma palavra-chave que desempenha um papel importante na criação de geradores.

O que é o yield no Python

Introdução

O yield é uma palavra-chave da linguagem de programação Python que desempenha um papel importante na criação de geradores. Um gerador é uma função que retorna um objeto iterável. O yield permite que uma função seja suspensa temporariamente durante a execução e retorne um valor para o chamador, mantendo seu estado interno. Quando a função é chamada novamente, ela retoma a partir do ponto em que foi suspensa anteriormente.

Utilização do yield para otimizar o código Python

A utilização do yield no Python pode trazer diversos benefícios para a otimização do seu código. Aqui estão algumas dicas sobre como utilizar o yield de forma eficiente:

Criação de geradores

O yield é amplamente utilizado na criação de geradores. Em vez de gerar uma lista completa de valores, você pode usar o yield para produzir os valores sob demanda. Isso economiza memória e torna o código mais eficiente.

Processamento de grandes volumes de dados

Se você está lidando com grandes volumes de dados, o uso do yield pode ser muito útil. Em vez de carregar todos os dados na memória, você pode processá-los em partes menores usando geradores e o yield. Isso torna o processamento mais eficiente e evita o consumo excessivo de memória.

Uso de pipelines de dados

O yield também pode ser usado para criar pipelines de dados. Com o yield, você pode encadear várias funções geradoras, onde cada uma delas processa os dados de forma incremental. Isso permite a criação de fluxos de processamento de dados de forma mais clara e modular.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

Exemplos práticos de uso do yield no Python

A melhor forma de entender como utilizar o yield no Python é através de exemplos práticos. Vamos ver alguns casos de uso comuns:

Fibonacci com geradores


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

Neste exemplo, a função fibonacci utiliza o yield para retornar os números da sequência de Fibonacci sob demanda. A cada chamada do gerador, o próximo número da sequência é retornado.

Leitura de arquivos grandes


def read_large_file(file_path):
  with open(file_path, 'r') as file:
    for line in file:
      yield line
  

Neste exemplo, a função read_large_file utiliza o yield para ler um arquivo grande linha por linha. Isso evita carregar todo o arquivo na memória de uma só vez, tornando o processo mais eficiente.

Benefícios do uso do yield para otimizar o seu código Python

O uso do yield no Python traz diversos benefícios para a otimização do código. Aqui estão alguns dos principais benefícios:

Economia de memória

O yield permite que você processe grandes volumes de dados de forma incremental, evitando o consumo excessivo de memória. Isso é especialmente útil quando você está lidando com dados que não cabem completamente na memória.

Melhor desempenho

Ao utilizar geradores e o yield, você pode processar os dados sob demanda, o que pode resultar em um melhor desempenho do seu código. Isso é especialmente importante quando você precisa lidar com operações que consomem muitos recursos, como iterações em loops ou leitura de arquivos grandes.

Código mais modular e claro

O uso do yield permite a criação de funções geradoras que podem ser encadeadas em pipelines de processamento de dados. Isso torna o código mais modular, reutilizável e claro, facilitando a manutenção e o entendimento do mesmo.

Conclusão

O yield é uma poderosa palavra-chave do Python que permite a criação de geradores e a otimização do código. Ao utilizar o yield, você pode economizar memória, melhorar o desempenho e tornar o código mais modular e claro. Portanto, aprenda a utilizar o yield para otimizar seu código Python e aproveite todos os benefícios que essa funcionalidade oferece.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

Exemplos práticos de uso do yield no Python

Agora, vamos ver alguns exemplos práticos de como utilizar o yield no Python para otimizar o seu código. Esses exemplos irão ajudá-lo a entender melhor como o yield funciona na prática e como você pode aproveitar seus benefícios.

Gerando sequências infinitas


def gerar_primos():
  numero = 2
  while True:
    if eh_primo(numero):
      yield numero
    numero += 1
  

Nesse exemplo, a função `gerar_primos()` utiliza o yield para retornar os números primos de forma incremental. Cada vez que o gerador é chamado, ele verifica se o número atual é primo e o retorna. Dessa forma, podemos utilizar essa função para gerar a sequência de números primos de forma eficiente.

Processando dados em lote


def processar_dados_em_lote(dados, tamanho_lote):
  for i in range(0, len(dados), tamanho_lote):
    yield dados[i:i + tamanho_lote]
  

Nesse exemplo, a função `processar_dados_em_lote()` recebe uma lista de dados e um tamanho de lote. Utilizando o yield, a função retorna os dados em lote, de acordo com o tamanho especificado. Dessa forma, podemos processar grandes volumes de dados de forma incremental, melhorando a eficiência do código.

Benefícios do uso do yield para otimizar o seu código Python

A utilização do yield no Python traz diversos benefícios para otimizar o seu código. Vamos destacar alguns dos principais benefícios que você pode obter ao utilizar o yield em suas implementações.

  • Economia de memória: O yield permite que você processe grandes volumes de dados de forma incremental, evitando o consumo excessivo de memória. Em vez de armazenar todos os dados em uma estrutura de dados, como uma lista, você pode processá-los um de cada vez, liberando a memória utilizada anteriormente. Isso é especialmente útil quando você está lidando com dados volumosos que não cabem completamente na memória.
  • Melhor desempenho: Ao utilizar o yield para criar geradores, você pode processar os dados sob demanda, o que resulta em um melhor desempenho do seu código. Em vez de realizar todas as operações de uma vez, o yield permite que você execute apenas as operações necessárias em cada iteração. Isso é especialmente importante quando você precisa lidar com operações que consomem muitos recursos, como iterações em loops ou leitura de arquivos grandes.
  • Código mais modular e legível: O uso do yield permite a criação de funções geradoras que podem ser encadeadas em pipelines de processamento de dados. Isso torna o seu código mais modular, reutilizável e legível. Cada função geradora pode ser responsável por uma parte específica do processamento, facilitando a manutenção e o entendimento do código como um todo.
  • Suporte a operações assíncronas: O yield também pode ser utilizado em conjunto com a programação assíncrona para processar operações de forma concorrente. Com o uso de bibliotecas como o asyncio, você pode criar geradores assíncronos que permitem a execução de tarefas simultâneas de forma eficiente. Isso é especialmente útil quando você precisa lidar com operações de entrada e saída, como requisições de rede ou acesso a banco de dados.

Conclusão

O yield é uma poderosa ferramenta do Python que permite a criação de geradores e a otimização do seu código. Com o yield, você pode economizar memória, melhorar o desempenho e tornar o seu código mais modular e legível. Aprenda a utilizar o yield para otimizar o seu código Python e aproveite todos os benefícios que essa funcionalidade oferece.

A Awari é a melhor plataforma para aprender sobre ciência de dados no Brasil.

Aqui você encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu próximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.

Já pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique aqui para se inscrever na Awari e começar a construir agora mesmo o próximo capítulo da sua carreira em dados.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada

Aprenda uma nova língua na maior escola de idioma do mundo!

Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa.

+ 400 mil alunos

Método validado

Aulas

Ao vivo e gravadas

+ 1000 horas

Duração dos cursos

Certificados

Reconhecido pelo mercado

Quero estudar na Fluency

Sobre o autor

A melhor plataforma para aprender tecnologia no Brasil

A Awari é a melhor maneira de aprender tecnologia no Brasil.
Faça parte e tenha acesso a cursos com aulas ao vivo e mentorias individuais com os melhores profissionais do mercado.