Iteradores — 5:38 min
05:38 min | Última modificación: Octubre 5, 2021
[1]:
#
# Estructura típica de un ciclo for
# =============================================================================
#
letter_list = ["a", "b", "c", "d", "e", "f", "g"]
for letter in letter_list:
print(letter)
a
b
c
d
e
f
g
[2]:
#
# Construcción de un iterador
# =============================================================================
#
letter_iterator = iter(letter_list)
#
# Extracción de los elementos usando next()
#
display(
next(letter_iterator),
next(letter_iterator),
next(letter_iterator),
)
'a'
'b'
'c'
[3]:
#
# Iteración con *
# =============================================================================
# El operador * extrae todos los elementos de una vez
#
display(*letter_iterator)
'd'
'e'
'f'
'g'
[4]:
#
# Iteración sobre un diccionario
# =============================================================================
#
my_dict = {
"a": 1,
"b": 2,
"c": 3,
}
for key, value in my_dict.items():
print(key, value)
a 1
b 2
c 3
[5]:
#
# Iteración sobre conexiones de artchivos
# =============================================================================
#
[6]:
%%writefile /tmp/demo.txt
linea 1
linea 2
linea 3
linea 4
Overwriting /tmp/demo.txt
[7]:
file = open("/tmp/demo.txt", "r")
display(
next(file),
next(file),
)
'linea 1\n'
'linea 2\n'
[8]:
#
# Iteración sobre un rango
# =============================================================================
#
range_iterator = iter(range(4))
display(
next(range_iterator),
next(range_iterator),
next(range_iterator),
)
0
1
2
[9]:
#
# Conversión de un objeto rango a una lista
# =============================================================================
#
list(range(4))
[9]:
[0, 1, 2, 3]
[10]:
#
# Construcción de una enumeración
# # =============================================================================
#
letter_list = ["a", "b", "c", "d", "e", "f", "g"]
enum = enumerate(letter_list)
display(
type(enum),
list(enum),
)
enumerate
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g')]
[11]:
#
# Uso de enumerate en un ciclo for
#
for i_letter, letter in enumerate(letter_list):
print(i_letter, letter)
0 a
1 b
2 c
3 d
4 e
5 f
6 g
[12]:
#
# Uso de enumerate en un ciclo for
#
for i_letter, letter in enumerate(letter_list, start=10):
print(i_letter, letter)
10 a
11 b
12 c
13 d
14 e
15 f
16 g
[13]:
#
# Función zip()
# =============================================================================
#
uppercase = ["A", "B", "C", "D", "E"]
lowercase = ["a", "b", "c", "d", "e"]
zipped = zip(uppercase, lowercase)
display(
type(zipped),
list(zipped),
)
zip
[('A', 'a'), ('B', 'b'), ('C', 'c'), ('D', 'd'), ('E', 'e')]
[14]:
#
# Uso de * con zip
# =============================================================================
#
zipped = zip(uppercase, lowercase)
display(*zipped)
('A', 'a')
('B', 'b')
('C', 'c')
('D', 'd')
('E', 'e')
[15]:
#
# Uso en un ciclo for
#
for items in zip(uppercase, lowercase):
display(items)
('A', 'a')
('B', 'b')
('C', 'c')
('D', 'd')
('E', 'e')
[16]:
#
# Forma más comun
#
for item1, item2 in zip(uppercase, lowercase):
display(item1 + " " + item2)
'A a'
'B b'
'C c'
'D d'
'E e'
[17]:
zipped = zip(uppercase, lowercase)
a, b = zip(*zipped)
display(a, b)
('A', 'B', 'C', 'D', 'E')
('a', 'b', 'c', 'd', 'e')