Las funciones range y zip en Python sirven para diferentes cosas. En el caso del range, para cualquier int n, range (n) genera una secuencia de int de 0 a n – 1. En el caso de la función zip, esta es una colección con elementos de la misma longitud.
Veamos en este artículo qué se puede hacer con las funciones range y zip en Python.
Funciones range y zip en Python
Range
Veamos un ejemplo de range:
#Funciones range y zip en Python
#Si ponemos:
range (10)
Podemos generar una secuencia de números del 1 al 10. Lo que pasa es que no podemos ver qué hay dentro de esa secuencia:
range (0, 10)
Para poder hacerlo y convertir el resultado que nos ha dado el range en una lista, debemos hacer lo siguiente:
#Funciones range y zip en Python
for i in range (10):
print (i)
0
1
2
3
4
5
6
7
8
9
Podemos convertir esto en una lista:
list (range (10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
También podemos usar numpy para crear una secuencia de números:
#Funciones range y zip en Python
import numpy as np
np.arrange (0, 10, 1)
array ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Ejercicio
Vamos a generar un conjunto que contenga los números impares del 1 al 99.
Lo primero que haremos es crear un conjunto, que es lo que nos piden. Lo que nos dice es que tengamos los números impares de 1 a 99, por lo que ponemos el rango hasta 100, ya que sabemos que va hasta 100 – 1. Esto se debe a que se empieza a contar desde 0 y no desde 1.
Tenemos que añadirle al conjunto si es impar. Un número es impar si el residuo de la división de ese número entre 2 es 1 (a diferencia de un número par, cuyo residuo debe ser 0). En nuestro caso lo añadiremos al conjunto odd_numbers_1.
#Funciones range y zip en Python
odd_numbers_1 = set ()
for i in range (100):
if i % 2 == 1:
odd_numbers_1.add (i)
print (odd_numbers_1)
{1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99}
Podemos hacer esto de una manera más simple, concisa y clara gracias a la lista de compresión:
#Funciones range y zip en Python
odd_numbers_2 = {i for i in range (100) if i % 2 == 1}
print (odd_numbers_2 )
{1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99}
odd_numbers_1 == odd_numbers_2
True
Zip
Veamos cómo funciona el zip. Tenemos dos listas, una con enteros y otra con strings. Vamos a intentar asociar cada uno de los elementos de la lista a con los de la lista b: 1 con Amanda, 2 con keepcoding y 3 con bootcamp. Observemos:
#Funciones range y zip en Python
a = [1, 2, 3]
b = ['Amanda', 'keepcoding', 'bootcamp']
list (zip (a, b))
[(1, ‘Amanda’), (2, ‘keepcoding’), (3, ‘bootcamp’)]
Nos sirve para combinar listas:
#Funciones range y zip en Python
characters = ['Neo', 'Morpheus', 'Trinity']
actors = ['Keanu', 'Laurence', 'Carrie']
list (zip (characters, actors))
[(‘Neo’, ‘Keanu’), (‘Morpheus’, ‘Laurence’), (‘Trinity’, ‘Carrie’)]
Se puede usar en un bucle para iterar al mismo tiempo sobre dos listas:
for i, j in zip (characters, actors):
print (i, + " " + j)
Neo Keanu
Morpheus Laurence
Trinity Carrie
El + dentro del print nos permite añadir, por ejemplo, una variable, string, otra variable. Sirve, básicamente, para unir variables.
También podríamos hacerlo de otro modo, con la f de format:
for i, j in zip (characters, actors):
print (f "{i} {j}")
#print ("{0} {1}").format (i, j)
¿Quieres aprender más sobre Big Data?
El Big Data es una de las áreas en la que más trabajos se ofertan. Si te encantaría acceder a este tipo de opciones laborales, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que adquirirás todos los conocimientos teóricos y prácticos que te permitirán obtener el trabajo de tus sueños. ¡No esperes más para seguir tu camino hacia el éxito y solicita información sobre el bootcamp ahora!