Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Funciones Generadoras | Especificación del Valor de Retorno de la Función
Tutorial de Funciones en Python

bookFunciones Generadoras

Una función generadora es un tipo especial de función que utiliza la palabra clave yield en lugar de return para generar una secuencia de valores. Cuando se llama a una función generadora, devuelve un objeto iterador, que puede ser recorrido para obtener los valores uno a uno.
La principal ventaja de las funciones generadoras es su eficiencia en el uso de memoria. Las funciones generadoras producen los valores en el momento en que se necesitan, en lugar de generar toda la secuencia de antemano. Esto las hace eficientes en memoria, especialmente al trabajar con conjuntos de datos grandes o secuencias infinitas.

A continuación, se muestra un ejemplo de una función generadora simple. Esta función es un generador que produce logins uno por uno a partir de la lista proporcionada:

12345678910111213141516
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))
copy

El principio de un generador es que permite devolver valores uno a la vez utilizando la palabra clave yield, sin almacenarlos todos en memoria al mismo tiempo. En nuestro ejemplo, el generador unique_logins_from_list recorre la lista de logins, devolviendo cada uno con yield y pausando en ese punto. Cuando se llama a next(), el generador se reanuda desde donde se detuvo, produciendo valores de manera eficiente sin necesidad de almacenar toda la lista en memoria simultáneamente. Esto hace que los generadores sean especialmente útiles para manejar grandes conjuntos de datos o flujos de datos.

Tarea

Swipe to start coding

Generar IDs de usuario únicos utilizando una función generadora. La función id_generator() debe producir continuamente identificadores como "ID_1", "ID_2", etc.

  1. Inicializar la variable count con el valor 1, ya que los identificadores comienzan desde 1.
  2. Utilizar un bucle infinito while para generar identificadores de forma continua.
  3. Usar yield para devolver el identificador actual en el formato f"ID_{count}".
  4. Incrementar count en 1 después de cada iteración.
  5. Inicializar el objeto generador id_gen llamando a id_generator().

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

close

Awesome!

Completion rate improved to 4.35

bookFunciones Generadoras

Desliza para mostrar el menú

Una función generadora es un tipo especial de función que utiliza la palabra clave yield en lugar de return para generar una secuencia de valores. Cuando se llama a una función generadora, devuelve un objeto iterador, que puede ser recorrido para obtener los valores uno a uno.
La principal ventaja de las funciones generadoras es su eficiencia en el uso de memoria. Las funciones generadoras producen los valores en el momento en que se necesitan, en lugar de generar toda la secuencia de antemano. Esto las hace eficientes en memoria, especialmente al trabajar con conjuntos de datos grandes o secuencias infinitas.

A continuación, se muestra un ejemplo de una función generadora simple. Esta función es un generador que produce logins uno por uno a partir de la lista proporcionada:

12345678910111213141516
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))
copy

El principio de un generador es que permite devolver valores uno a la vez utilizando la palabra clave yield, sin almacenarlos todos en memoria al mismo tiempo. En nuestro ejemplo, el generador unique_logins_from_list recorre la lista de logins, devolviendo cada uno con yield y pausando en ese punto. Cuando se llama a next(), el generador se reanuda desde donde se detuvo, produciendo valores de manera eficiente sin necesidad de almacenar toda la lista en memoria simultáneamente. Esto hace que los generadores sean especialmente útiles para manejar grandes conjuntos de datos o flujos de datos.

Tarea

Swipe to start coding

Generar IDs de usuario únicos utilizando una función generadora. La función id_generator() debe producir continuamente identificadores como "ID_1", "ID_2", etc.

  1. Inicializar la variable count con el valor 1, ya que los identificadores comienzan desde 1.
  2. Utilizar un bucle infinito while para generar identificadores de forma continua.
  3. Usar yield para devolver el identificador actual en el formato f"ID_{count}".
  4. Incrementar count en 1 después de cada iteración.
  5. Inicializar el objeto generador id_gen llamando a id_generator().

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
single

single

some-alt