Python ‐ Mejores practicas (Listas, Tuplas) - DavSeb21031990/plan-estudio-python-go GitHub Wiki
Lista vs. Tupla: La Decisión Clave
La elección entre una lista y una tupla se reduce principalmente a tres factores: mutabilidad, rendimiento y seguridad de datos.
1. Mutabilidad: ¿Necesitas Cambiar los Datos?
Esta es la diferencia más fundamental y, a menudo, el factor decisivo.
- Listas (Mutables):
- Una vez que creas una lista, puedes modificarla. Esto significa que puedes añadir, eliminar o cambiar elementos individuales.
- Cuándo usarlas: Utiliza listas cuando los datos que almacenas son dinámicos y pueden cambiar durante la ejecución de tu programa.
- Ejemplos:
- Una lista de tareas pendientes que se completan y se añaden nuevas.
- Los resultados de un sensor que se actualizan continuamente.
- Elementos en un carrito de compras que el usuario puede añadir o quitar.
# Ejemplo de lista mutable mi_lista = [1, 2, 3] mi_lista.append(4) # Añadir un elemento mi_lista[0] = 10 # Cambiar un elemento print(mi_lista) # Salida: [10, 2, 3, 4]
- Tuplas (Inmutables):
- Una vez que creas una tupla, no puedes modificarla. Su contenido es fijo.
- Cuándo usarlas: Utiliza tuplas cuando los datos son estáticos y no deberían cambiar. Esto ofrece una garantía de que los valores permanecerán constantes.
- Ejemplos:
- Coordenadas geográficas (latitud, longitud) que representan una ubicación fija.
- Configuraciones de un programa que no deben ser alteradas en tiempo de ejecución.
- Fechas de nacimiento (día, mes, año).
# Ejemplo de tupla inmutable mi_tupla = (1, 2, 3) # mi_tupla.append(4) # Error: AttributeError # mi_tupla[0] = 10 # Error: TypeError print(mi_tupla)
2. Rendimiento: ¿Importa la Velocidad?
Si bien la diferencia en rendimiento suele ser mínima para la mayoría de las aplicaciones, puede ser un factor en programas de alto rendimiento o con grandes volúmenes de datos.
- Tuplas:
- Generalmente son ligeramente más rápidas que las listas. Al ser inmutables, Python puede optimizar su almacenamiento y acceso de manera más eficiente.
- Cuándo usarlas: Si estás manejando una cantidad muy grande de colecciones de datos que no necesitan ser modificadas y el rendimiento es una preocupación crítica.
- Listas:
- Son un poco más lentas debido a la sobrecarga de permitir modificaciones.
3. Seguridad de Datos: ¿Necesitas Garantizar la Integridad?
La inmutabilidad de las tuplas es un fuerte aliado para la seguridad y la integridad de los datos.
- Tuplas:
- Mayor seguridad: Al ser inmutables, las tuplas garantizan que una vez que se crean, sus datos no pueden ser alterados accidentalmente por otra parte del código. Esto es crucial cuando pasas datos entre funciones y quieres asegurarte de que no se modifiquen inesperadamente.
- Uso como claves de diccionario: Debido a su inmutabilidad, las tuplas pueden ser utilizadas como claves en diccionarios, lo cual no es posible con las listas (ya que las claves de los diccionarios deben ser inmutables). Esto es útil para asociar valores a un conjunto de elementos.
# Tuplas como claves de diccionario puntos = {(1, 2): "Inicio", (5, 8): "Fin"} print(puntos[(1, 2)]) # Salida: Inicio
- Listas:
- Menor seguridad inherente: Si pasas una lista a una función, esa función puede modificar la lista original, lo que podría llevar a efectos secundarios no deseados si no se maneja con cuidado.
Cuándo Usar Cada Una: Resumen de Buenas Prácticas
Característica | Listas ([] ) |
Tuplas (() ) |
---|---|---|
Mutabilidad | Modificable (puedes añadir, quitar, cambiar elementos) | Inmutable (no se puede modificar una vez creada) |
Rendimiento | Ligeramente más lenta para grandes volúmenes | Ligeramente más rápida para grandes volúmenes |
Seguridad | Menor garantía de integridad de datos | Mayor garantía de integridad de datos |
Uso Principal | Colecciones de datos dinámicos | Colecciones de datos fijos y constantes |
Casos Comunes | Cestas de compras, registros de logs, elementos iterables que cambian | Coordenadas, configuraciones, resultados de funciones (múltiples valores) |
Claves Dic. | No pueden ser claves de diccionario | Pueden ser claves de diccionario |