from collections import defaultdict
from collections import Counter
from collections import deque
from enum import Enum
productos = ["CPU", "Portatil", "Pantalla", "Teclado" ,"Raton", "USB", "CPU", "Portatil", "Pantalla", "Teclado" ,"Raton", "CPU", "Portatil", "Pantalla", "Teclado" ,"CPU", "Portatil", "Pantalla", "CPU", "Portatil","CPU"]
def contar_productos_d(productos):
productos_contados = defaultdict(int)
for producto in productos:
productos_contados[producto] +=1
return productos_contados
conteo_defaultdict = contar_productos_d(productos)
print(f"conteo_defaultdict: {conteo_defaultdict}") # conteo_defaultdict: defaultdict(<class 'int'>, {'CPU': 6, 'Portatil': 5, 'Pantalla': 4, 'Teclado': 3, 'Raton': 2, 'USB': 1})
def contrar_productos_c(productos):
return Counter(productos)
conteo_counter = contrar_productos_c(productos)
print(f"conteo_counter: {conteo_counter}") # conteo_counter: Counter({'CPU': 6, 'Portatil': 5, 'Pantalla': 4, 'Teclado': 3, 'Raton': 2, 'USB': 1})
def lista_productos():
global productos # Referencia explícita a la variable global
productos = deque(productos)
print(f"Lista Original: {productos}")
# Lista Original: deque(['CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'USB', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'CPU', 'Portatil', 'Pantalla', 'CPU', 'Portatil', 'CPU'])
productos.appendleft("Cargador")
print(f"Adición Inicio: {productos}")
# Adición Inicio: deque(['Cargador', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'USB', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'CPU', 'Portatil', 'Pantalla', 'CPU', 'Portatil', 'CPU']
productos.append("Audifonos")
print(f"Adición Final: {productos}")
# Adición Final: deque(['Cargador', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'USB', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'CPU', 'Portatil', 'Pantalla', 'CPU', 'Portatil', 'CPU', 'Audifonos'])
productos.popleft()
print(f"Eliminación Inicio:{productos}")
# Eliminación Inicio:deque(['CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'USB', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'CPU', 'Portatil', 'Pantalla', 'CPU', 'Portatil', 'CPU', 'Audifonos'])
productos.pop()
print(f"Eliminación Final: {productos}")
# Eliminación Final: deque(['CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'USB', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'CPU', 'Portatil', 'Pantalla', 'CPU', 'Portatil', 'CPU'])
productos.appendleft("Pila")
print(f"Adición Inicio: {productos}")
# Listado Actualizado: deque(['Pila', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'USB', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'CPU', 'Portatil', 'Pantalla', 'CPU', 'Portatil', 'CPU'])
print(f"Listado Actualizado: {productos}")
# Listado Actualizado: deque(['Pila', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'USB', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'Raton', 'CPU', 'Portatil', 'Pantalla', 'Teclado', 'CPU', 'Portatil', 'Pantalla', 'CPU', 'Portatil', 'CPU'])
lista_productos()
class EstadoOrden(Enum):
EnAlmacen = 0
Enviado = 1
Entregado_Cliente = 2
def verificar_estado_orden(estado):
if estado == EstadoOrden.EnAlmacen:
return "El producto esta en el almacen"
elif estado == EstadoOrden.Enviado:
return "El producto fue enviado"
elif estado == EstadoOrden.Entregado_Cliente:
return "El producto fue entregado al cliente final"
estado_actual = EstadoOrden.EnAlmacen
print(verificar_estado_orden(estado_actual))
# El producto esta en el almacen
estado_actual = EstadoOrden.Enviado
print(verificar_estado_orden(estado_actual))
# El producto fue enviado
estado_actual = EstadoOrden.Entregado_Cliente
print(verificar_estado_orden(estado_actual))
# El producto fue entregado al cliente final