Shirley Li
0
Q:

python generators

# A generator-function is defined like a normal function, 
# but whenever it needs to generate a value, 
# it does so with the yield keyword rather than return. 
# If the body of a def contains yield, 
# the function automatically becomes a generator function.
# Python 3 example
def grepper_gen():
  yield "add"
  yield "grepper"
  yield "answer"
grepper = grepper_gen()
next(grepper)
> add
next(grepper)
> grepper
next(grepper)
> answer
10
# Size of generators is a huge advantage compared to list
import sys

n= 80000

# List
a=[n**2 for n in range(n)]

# Generator
# Be aware of the syntax to create generators, lika a list comprehension but with round brakets
b=(n**2 for n in range(n))

print(f"List: {sys.getsizeof(a)} bits\nGenerator: {sys.getsizeof(b)} bits")
0
def count_to_ten_generator():
  for number in range(10):
    yield number
my_generator = count_to_ten_generator()
first_number = next(my_generator)
list_or_the_rest = list(my_generator)
-1

New to Communities?

Join the community