Saltar al contenido

python

range python – El tipo range en Python: Secuencias numéricas

El tipo range en Python es una clase que se utiliza para representar una secuencia inmutable de números. Este tutorial presenta la clase range y sus principales operaciones.

range python - El tipo range en Python

range en Python es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.

Descubre en este tutorial la clase range y sus principales usos y operaciones.

Índice

La clase range en Python

Como te adelantaba en la introducción, range es un tipo de dato que representa una secuencia de números inmutable.

Para crear un objeto de tipo range, se pueden usar dos constructores :

  • range(fin): Crea una secuencia numérica que va desde 0 hasta fin - 1.
  • range(inicio, fin, [paso]): Crea una secuencia numérica que va desde inicio hasta fin - 1. Si además se indica el parámetro paso, la secuencia genera los números de paso en paso.

Veámoslo con un ejemplo:

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(5, -5, -2))
[5, 3, 1, -1, -3]

¿Por qué estoy utilizando en los ejemplos la clase range como argumento de list? range, además de un tipo secuencial es un tipo iterable con una particularidad: a diferencia de los tipos list o tuple, range calcula los ítems al vuelo, cuando los necesita. Como list acepta un objeto iterable como parámetro, por eso paso un objeto range al constructor de list, para que se muestre por pantalla la secuencia completa que se genera con range.

❗️NOTA: Si se llama al constructor range() con parámetros incorrectos, se obtendrá un objeto vacío.

# Nunca se puede ir de 0 a 10 de -1 en -1

>>> list(range(0, 10, -1))
[]

Recorrer una secuencia numérica

En la introducción te adelanté que uno de los principales usos de range() es utilizarlo en bucles for. Aquí puedes ver todos los detalles del uso de for y range en Python.

>>> for i in range(1, 11):
...     print(i)
...     
1
2
3
4
5
6
7
8
9
10

Ventajas de usar range en Python

La principal ventaja de usar range sobre list o tuple es que es un iterable que genera los elementos solo en el momento en que realmente los necesita. Esto implica que usa una cantidad de memoria mínima, por muy grande que sea el rango de números que represente.

Veamos una comparación de una lista que almacena los números del 0 al 100.000 y un rango del 0 al 100.000:

>>> import sys
>>> lista = list(range(0, 100000))
>>> rango = range(0, 100000)
>>> sys.getsizeof(lista)
900120
>>> sys.getsizeof(rango)
48

Como puedes apreciar, la lista ocupa casi 1 MB en memoria frente a los 48 bytes que ocupa el rango.

Operaciones de la clase range

Al tratarse de un tipo secuencial, range implementa las operaciones básicas de ese tipo a excepción de la concatenación y la repetición:

>>> r = range(0,30, 3)
>>> r[2]
6
>>> r[-1]
27
>>> 13 in r
False
>>> 12 in r
True
>>> r.index(18)
6

Bueno, pues con esto, hemos llegado al final de este tutorial. Recuerda, usa la clase range para generar secuencias de números, especialmente si las necesitas en un bucle for.

Newsletter EstrategIA

Programar con IA sin perder el control

Si te ha interesado este artículo, esto también te va a interesar. Cada dos martes te cuento qué funciona y qué no al construir software con agentes de IA, con ejemplos reales de mi software factory y los números de mis proyectos, sin maquillar.

9.277 desarrolladores y profesionales ya la leen martes quincenales

EstrategIA Próximo número · martes

Lo que recibes

  1. Qué funciona (y qué no) programando con agentes de IA
  2. Casos reales de MaIA y DGC: decisiones, errores y resultados
  3. Los números de mis proyectos, sin maquillar
  4. Una idea que puedes aplicar esa misma semana

Sin spam. Te das de baja con un clic.

j2logo

Sigue leyendo

Listar directorio en Python
python

Listar directorio en Python. Listar ficheros de un directorio

requests - Hacer peticiones http en Python
python

Python requests. La librería para hacer peticiones http en Python

Web scraping con Python. Guía de inicio a BeautifulSoup
python

Web scraping con Python. Extraer datos de una web. Guía de inicio de Beautiful Soup

Tutorial de SQLAlchemy
python

SQLAlchemy. Tutorial de Python SQLAlchemy. Guía de inicio