-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAvanzado.py
More file actions
27 lines (21 loc) · 768 Bytes
/
Avanzado.py
File metadata and controls
27 lines (21 loc) · 768 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""
Generadores
"""
def double_numbers(iterable: iter):
for i in iterable:
yield i + i
# Los generadores hacen un uso eficiente de la memoria porque solo cargan los datos
# necesarios para procesar el siguiente valor en el iterable. Esto les permite realizar
# operaciones en valores de rango prohibitivos muy altos
for i in double_numbers(range(0, 900000000000000000000000)): # range es mi generador
print(i)
if i >= 30: # cuando llegue a 30, cortar
break
values = (-x for x in [1, 2, 3, 4 , 5]) # generador (-1, -2, -3, -4, -5)
for x in values:
print(x, end=' ')
print('\n')
# También podemos hacer un cast de generador directo a una lista
values = (-x for x in [1, 2, 3, 4 , 5])
gen_to_list = list(values)
print(gen_to_list)