Conteúdo do Curso
Tutorial de Funções em Python
Tutorial de Funções em Python
Funções Geradoras
Uma função geradora é um tipo especial de função que usa a palavra-chave yield
em vez de return
para gerar uma sequência de valores. Quando uma função geradora é chamada, ela retorna um objeto iterador, que pode ser iterado para recuperar valores um de cada vez.
A principal vantagem das funções geradoras é sua eficiência de memória. As funções geradoras geram valores sob demanda, conforme necessário, em vez de gerar toda a sequência de uma vez. Isso as torna eficientes em termos de memória, especialmente ao lidar com grandes conjuntos de dados ou sequências infinitas.
Vamos ver o exemplo de um gerador simples. Esta função é um gerador que gera logins um por um a partir da lista fornecida:
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
O princípio de um gerador é que ele permite que os valores sejam retornados um de cada vez usando a palavra-chave yield
, sem armazená-los todos na memória de uma vez. No nosso exemplo, o gerador unique_logins_from_list
itera pela lista de logins, retornando cada um no yield
e pausando nesse ponto. Quando next()
é chamado, o gerador retoma de onde parou, gerando valores de forma eficiente sem precisar armazenar a lista inteira na memória simultaneamente. Isso torna os geradores particularmente úteis para lidar com grandes conjuntos de dados ou fluxos de dados.
Swipe to show code editor
Crie um gerador que gere identificadores únicos. Os identificadores podem ser, por exemplo, strings no formato "ID_1"
, "ID_2"
, e assim por diante. Cada vez que você chamar next()
, o gerador deve retornar um novo identificador único.
Obrigado pelo seu feedback!
Funções Geradoras
Uma função geradora é um tipo especial de função que usa a palavra-chave yield
em vez de return
para gerar uma sequência de valores. Quando uma função geradora é chamada, ela retorna um objeto iterador, que pode ser iterado para recuperar valores um de cada vez.
A principal vantagem das funções geradoras é sua eficiência de memória. As funções geradoras geram valores sob demanda, conforme necessário, em vez de gerar toda a sequência de uma vez. Isso as torna eficientes em termos de memória, especialmente ao lidar com grandes conjuntos de dados ou sequências infinitas.
Vamos ver o exemplo de um gerador simples. Esta função é um gerador que gera logins um por um a partir da lista fornecida:
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
O princípio de um gerador é que ele permite que os valores sejam retornados um de cada vez usando a palavra-chave yield
, sem armazená-los todos na memória de uma vez. No nosso exemplo, o gerador unique_logins_from_list
itera pela lista de logins, retornando cada um no yield
e pausando nesse ponto. Quando next()
é chamado, o gerador retoma de onde parou, gerando valores de forma eficiente sem precisar armazenar a lista inteira na memória simultaneamente. Isso torna os geradores particularmente úteis para lidar com grandes conjuntos de dados ou fluxos de dados.
Swipe to show code editor
Crie um gerador que gere identificadores únicos. Os identificadores podem ser, por exemplo, strings no formato "ID_1"
, "ID_2"
, e assim por diante. Cada vez que você chamar next()
, o gerador deve retornar um novo identificador único.
Obrigado pelo seu feedback!