xxxxxxxxxx
for i in generador():
print(i)
# Salida: 1, 2, 3
xxxxxxxxxx
# 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")
xxxxxxxxxx
def generator_function():
for i in range(10):
yield i
for item in generator_function():
print(item)
# Output: 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
xxxxxxxxxx
def generador():
n = 1
yield n
n += 1
yield n
n += 1
yield n
xxxxxxxxxx
# generator version
def fibon(n):
a = b = 1
for i in range(n):
yield a
a, b = b, a + b