¿Para que se usa import collections en Python?

| Última modificación: 14 de enero de 2025 | Tiempo de Lectura: 3 minutos

El módulo de import collections es la solución a los problemas de limitación con estructuras de datos en Python. Al importar este módulo de collections, desbloqueas herramientas avanzadas para trabajar con datos. El día de hoy quiero mostrarte qué es este módulo, qué hace y cómo usarlo correctamente.

import collections en Python

¿Qué es import collections?

El módulo import collections en Python nos ofrece tipos de datos especializados como alternativas a los contenedores básicos, ya sean listas, tuplas,diccionarios o conjuntos. Estos tipos están diseñados para casos de uso muy específicos, como contar elementos, mantener el orden de inserción o crear estructuras jerárquicas.

Si usamos import collections podemos acceder a herramientas como lo son counter, defaultdict, deque, OrderedDict, namedtuple y mucho más. Cada una de estas herramientas tiene aplicaciones que te vamos a presentar a continuación.

Herramientas de import collections

El módulo perteneciente a import collections alberga varias joyas que hacen que tu vida más fácil como desarrolador. Algunas de las más útiles son:

  • Counter: contar elementos con facilidad: esta es una subclasse de diccionario que te permite contar la frecuencia de elementos de una colección:
from collections import Counter

frutas = ['manzana', 'pera', 'manzana', 'naranja', 'pera', 'manzana']
contador = Counter(frutas)
print(contador)
# Salida: Counter({'manzana': 3, 'pera': 2, 'naranja': 1})

Con Counter, puedes encontrar los elementos más comunes, eliminar duplicados y mucho más.

  • defaultdict: diccionarios con valores predeterminados: defaultdict simplifica el manejo de claves inexistentes al asignar automáticamente un valor predeterminado:
from collections import defaultdict

notas = defaultdict(list)
notas['Juan'].append(10)
notas['Maria'].append(8)
print(notas)
# Salida: defaultdict(<class 'list'>, {'Juan': [10], 'Maria': [8]})

Es recomendable cuando trabajas con agrupaciones o acumulaciones.

  • deque: listas doblemente enlazadas: Si necesitas manejar datos con operaciones rápidas al inicio y al final, deque es la herramienta perfecta:
from collections import deque

cola = deque([1, 2, 3])
cola.append(4) # Agrega al final
cola.appendleft(0) # Agrega al inicio
print(cola)
# Salida: deque([0, 1, 2, 3, 4])
cola.pop() # Elimina del final
cola.popleft() # Elimina del inicio
print(cola)
# Salida: deque([1, 2, 3])

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

deque es ideal para implementar colas, pilas y estructuras circulares.

  • namedtuple: tuplas con nombres: gracias a esta herramienta puedes crear tuplas que tienen nombres de campos en lugar de índices, lo que mejora la legibilidad:
from collections import namedtuple

Punto = namedtuple('Punto', ['x', 'y'])
p = Punto(10, 20)
print(p.x, p.y)
# Salida: 10 20

Es perfecto para representar datos estructurados de forma clara y ligera.

  • OrderedDict: diccionarios que recuerdan el orden: Aunque los diccionarios estándar ya mantienen el orden de inserción, OrderedDict ofrece métodos adicionales para reordenar elementos.
from collections import OrderedDict

ordenado = OrderedDict()
ordenado['a'] = 1
ordenado['b'] = 2
ordenado['c'] = 3
print(ordenado)
# Salida: OrderedDict([('a', 1), ('b', 2), ('c', 3)])

Este tipo de dato es útil en algoritmos donde el orden es crítico.

  • ChainMap: combina diccionarios: ChainMap te permite agrupar múltiples diccionarios y tratarlos como si fueran uno solo:
from collections import ChainMap

mapa1 = {'a': 1, 'b': 2}
mapa2 = {'b': 3, 'c': 4}
combinado = ChainMap(mapa1, mapa2)
print(combinado['b']) # Busca en el primer diccionario
# Salida: 2

Es útil para manejar configuraciones con múltiples niveles de prioridades.

¿En qué contextos podemos usar import collections?

  1. Análisis de datos: Con herramientas como Counter y defaultdict, puedes analizar grandes conjuntos de datos de manera eficiente.
  2. Procesamiento de logs: Utiliza deque para manejar flujos de datos o mantener solo las últimas entradas.
  3. Configuraciones jerárquicas: Usa ChainMap para combinar configuraciones de usuario, sistema y por defecto.
  4. Representación de datos: namedtuple y OrderedDict son ideales para estructurar datos de forma más comprensible.

Si quieres seguir seguir aprendiendo sobre programación, no dudes en suscribirte a nuestro bootcamp de programación para niveles iniciales, en donde aprenderás toda la fundamentación teórica y práctica que te catapultará hacia el futuro laboral que siempre quisiste. No dejes pasar tu oportunidad de construir el futuro de tus sueños. ¡Empieza ahora!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado