Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Introduction to Generators: Yielding Values for Efficient Iteration | Mastering Iterators and Generators in Python
Python Advanced Concepts

Deslize para mostrar o menu

book
Introduction to Generators: Yielding Values for Efficient Iteration

Generators simplify lazy evaluation by providing a concise and readable way to create iterators. While an iterator is implemented as a class with the __iter__() and __next__() methods, a generator is implemented as a function that uses the yield keyword to produce values one at a time. Generators maintain their state automatically between calls, making them more intuitive and efficient for many use cases.

A generator is a special type of function that:

  1. Uses the yield keyword instead of return ;

  2. Pauses execution and retains its state when yield is called;

  3. Resumes execution from where it left off when the generator is called again.

123456789
def example_generator(): yield "First value" yield "Second value" yield "Third value" gen = example_generator() print(next(gen)) # Output: First value print(next(gen)) # Output: Second value print(next(gen)) # Output: Third value
copy
12345678910
import random def limited_dice_roller(num_rolls): for _ in range(num_rolls): yield random.randint(1, 6) # Using the limited dice roller print("Rolling the dice:") for roll in limited_dice_roller(5): print(f"Rolled: {roll}")
copy

Differences Between Iterator and Generator

Tarefa

Swipe to start coding

In the previous task, you implemented an infinite dice roller using a custom iterator class. Now, you will simplify the same functionality by using a generator function. Generators provide a concise and readable way to produce values lazily using the yield keyword.

  1. Define the generator function. Use the yield keyword inside the dice_roller function to produce random dice rolls between 1 and 6. Use the random.randint() function to simulate each roll.
  2. Call the dice_roller() function to create a generator object and assign it to the variable dice_generator.
  3. Use a for loop with enumerate() to iterate over the generator. Stop the iteration after 10 rolls using an if condition and the break statement.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 6. Capítulo 4
Sentimos muito que algo saiu errado. O que aconteceu?

Pergunte à IA

expand
ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

book
Introduction to Generators: Yielding Values for Efficient Iteration

Generators simplify lazy evaluation by providing a concise and readable way to create iterators. While an iterator is implemented as a class with the __iter__() and __next__() methods, a generator is implemented as a function that uses the yield keyword to produce values one at a time. Generators maintain their state automatically between calls, making them more intuitive and efficient for many use cases.

A generator is a special type of function that:

  1. Uses the yield keyword instead of return ;

  2. Pauses execution and retains its state when yield is called;

  3. Resumes execution from where it left off when the generator is called again.

123456789
def example_generator(): yield "First value" yield "Second value" yield "Third value" gen = example_generator() print(next(gen)) # Output: First value print(next(gen)) # Output: Second value print(next(gen)) # Output: Third value
copy
12345678910
import random def limited_dice_roller(num_rolls): for _ in range(num_rolls): yield random.randint(1, 6) # Using the limited dice roller print("Rolling the dice:") for roll in limited_dice_roller(5): print(f"Rolled: {roll}")
copy

Differences Between Iterator and Generator

Tarefa

Swipe to start coding

In the previous task, you implemented an infinite dice roller using a custom iterator class. Now, you will simplify the same functionality by using a generator function. Generators provide a concise and readable way to produce values lazily using the yield keyword.

  1. Define the generator function. Use the yield keyword inside the dice_roller function to produce random dice rolls between 1 and 6. Use the random.randint() function to simulate each roll.
  2. Call the dice_roller() function to create a generator object and assign it to the variable dice_generator.
  3. Use a for loop with enumerate() to iterate over the generator. Stop the iteration after 10 rolls using an if condition and the break statement.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 6. Capítulo 4
Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Sentimos muito que algo saiu errado. O que aconteceu?
some-alt