Python - Librería Collections
#########################################
#Ejemplos en Python usando la librería collections.
#1. Crear un diccionario con valores predeterminados:
import collections
# crea un diccionario con valores predeterminados de 0
valores = collections.defaultdict(int)
# agrega algunos valores al diccionario
valores['a'] = 1
valores['b'] = 2
# imprime el diccionario completo (incluyendo la clave 'c' con valor predeterminado de 0)
print(valores)
#2. Contar la cantidad de veces que aparece cada elemento en una lista:
import collections
# crea una lista con algunos elementos repetidos
lista = [1, 2, 3, 1, 2, 1, 4, 5]
# cuenta la cantidad de veces que aparece cada elemento en la lista
conteo = collections.Counter(lista)
# imprime el conteo completo
print(conteo)
#3. Crear una cola (FIFO) utilizando `deque`:
import collections
# crea una cola vacía
cola = collections.deque()
# agrega algunos elementos a la cola
cola.append(1)
cola.append(2)
cola.append(3)
# imprime los elementos de la cola en orden (primero en entrar, primero en salir)
print(cola.popleft())
print(cola.popleft())
print(cola.popleft())
#4. Crear un conjunto con elementos únicos utilizando `set`:
import collections
# crea un conjunto vacío
conjunto = set()
# agrega algunos elementos al conjunto (eliminando duplicados automáticamente)
conjunto.add(1)
conjunto.add(2)
conjunto.add(3)
conjunto.add(1)
# imprime los elementos del conjunto (sin duplicados)
print(conjunto)
#5. Crear una lista ordenada utilizando `OrderedDict`:
import collections
# crea un diccionario ordenado
diccionario_ordenado = collections.OrderedDict()
# agrega algunos elementos al diccionario en orden (clave, valor)
diccionario_ordenado['b'] = 2
diccionario_ordenado['a'] = 1
diccionario_ordenado['c'] = 3
# imprime los elementos del diccionario en orden de inserción (clave, valor)
for clave, valor in diccionario_ordenado.items():
print(clave, valor)
# Deque & Queue Collections
import math
import collections
counter = collections.Counter()
for i in range(0, 100000):
counter[math.sqrt(i) // 25] += 1
for key, count in counter.most_common(5):
print('%s: %d' % (key, count))
import collections
queue = collections.deque()
queue.append(1)
queue.append(2)
queue
queue.popleft()
queue.popleft()
#queue.popleft() #IndexError: pop from an empty deque