El módulo collections
en Python es una parte integral del lenguaje que ofrece alternativas a las estructuras de datos incorporadas. Este módulo proporciona algunas clases de contenedores muy útiles que se utilizan para reemplazar los contenedores generales de Python como dict, tuple, list y set. Las clases más utilizadas de este módulo son:
namedtuple()
: Sirve básicamente como un reemplazo para las tuplas y agrega la ventaja de asignar nombres a elementos de la tupla, lo que hace que nuestro código sea mucho más legible.
deque
: Es un reemplazo para las listas de Python y agrega la capacidad de agregar y eliminar elementos de ambos lados de la cola con eficiencia de tiempo constante.
Counter
: Esta clase es una herramienta de recuento que es una subclase del diccionario. Se utiliza para contar el número de ocurrencias de los elementos en un contenedor.
Veamos algunos ejemplos de cómo utilizaríamos estas clases en nuestro código:
from collections import namedtuple
# Definimos una tupla con nombre
Fruta = namedtuple('Fruta', 'nombre color')
manzana = Fruta('manzana', 'rojo')
print(manzana.nombre) # Salida: manzana
print(manzana.color) # Salida: rojo
from collections import deque
# Inicializamos deque
d = deque('123456')
# Insertamos a la derecha
d.append('1')
print(d) # Salida: deque(['1', '2', '3', '4', '5', '6', '1'])
from collections import Counter
# Conteo de elementos
c = Counter('python')
print(c) # Salida: Counter({'p': 1, 'y': 1, 't': 1, 'h': 1, 'o': 1, 'n': 1})
Las características que ofrece el módulo collections
lo hacen fundamental para la manipulación de datos en Python. Facilita operaciones que, de otro modo, requerirían más código, y ofrece una eficiencia mejorada para ciertas operaciones de datos. Para sacarle todo el provecho, es esencial entender las capacidades de cada una de las clases que proporciona.