Refactorizar código con listas en Python

Clase 23 de 49Curso Práctico de Python: Creación de un CRUD

Resumen

Pasar de strings a listas en Python simplifica el manejo de clientes y mejora la legibilidad. Aquí verás cómo refactorizar un pequeño CRUD paso a paso usando métodos de lista como append, enumerate, index y remove, además de operadores de pertenencia y formateo con format.

¿Cómo refactorizar de strings a listas en Python?

Usar listas en lugar de strings elimina la necesidad de concatenar texto y gestionar separadores. Ahora los clientes viven en una lista y cada operación trabaja de forma directa sobre la estructura de datos.

  • Reemplaza concatenación por métodos de lista. Usa append en vez de sumar strings.
  • Itera con índice incluido. enumerate entrega índice y valor al mismo tiempo.
  • Actualiza por posición. Con index obtienes el índice y reasignas en la lista.
  • Elimina por valor. remove borra el elemento sin necesitar el índice.
  • Mantén la interfaz. Cambia la implementación interna, no los comandos que el usuario ejecuta.

¿Qué ajustes aplicar en create, list y update?

El objetivo es dejar de manipular texto y usar operaciones nativas de listas. Los operadores de pertenencia como in y not in funcionan igual en listas que en strings, pero ahora operan sobre elementos, no sobre caracteres.

¿Cómo agregar elementos con append?

Sustituye la concatenación y cualquier lógica de “añadir coma”. Si el cliente no existe, agrégalo con append.

clients = ['Pablo', 'Ricardo']

def create_client(client_name):
    global clients
    if client_name not in clients:
        clients.append(client_name)
  • Idea clave: en lugar de construir un string, modificas la lista en sitio con append.

¿Cómo iterar con enumerate y mostrar índice?

Para listar clientes con su “ID” temporal, usa la built-in function enumerate que devuelve par (índice, valor) durante el ciclo.

def list_clients():
    for index, client in enumerate(clients):
        print('{}: {}'.format(index, client))
  • Placeholders con format: las llaves {} marcan dónde insertar variables con format.
  • Ventaja: sabes en qué índice está cada cliente sin cálculos adicionales.

¿Cómo actualizar con index y reasignación?

Para cambiar el nombre de un cliente, primero localiza su posición con index y luego reasigna en ese índice.

def update_client(client_name, updated_name):
    global clients
    index = clients.index(client_name)
    clients[index] = updated_name
  • Fortaleza de las listas: permiten reasignar valores en una posición concreta, algo que los strings no permiten.

¿Cómo eliminar y buscar clientes de forma limpia?

Eliminar y buscar ahora son más directos porque la lista ya define límites entre elementos. Se puede quitar la función de “añadir coma” y cualquier división por separadores.

¿Cómo eliminar con remove sin índice?

Si conoces el nombre, no necesitas el índice: remove elimina la primera ocurrencia del valor.

def delete_client(client_name):
    global clients
    clients.remove(client_name)
  • Práctico: elimina por valor, ideal cuando el índice no está a mano.

¿Cómo buscar con operadores de pertenencia y control de flujo?

Recorre la lista y regresa True al encontrar coincidencia. Los return detienen la función en el momento exacto.

def search_client(client_name):
    for client in clients:
        if client != client_name:
            continue
        return True
    return False
  • not in / in: verifican pertenencia de forma legible.
  • Control de flujo: return termina la función y entrega el resultado inmediatamente.

  • Prueba en consola: listar muestra índices (0: Pablo, 1: Ricardo), crear agrega, buscar confirma existencia y borrar quita elementos. La funcionalidad externa se mantiene mientras la implementación interna mejora en claridad.

¿Te fue útil este enfoque con listas? Comenta qué parte te gustaría profundizar o qué otra estructura de datos quieres ver aplicada en el programa de plats y ventas.