0% encontró este documento útil (0 votos)
12 vistas5 páginas

Lista en Python

El informe técnico analiza la manipulación de listas en Python, describiendo su declaración, operaciones principales y diferencias con otras estructuras de datos como tuplas y conjuntos. Se discuten optimizaciones para el manejo eficiente de listas en proyectos grandes y se abordan problemas de rendimiento en listas grandes. Además, se presentan casos de uso comunes y reflexiones sobre la modificación de listas y su impacto en la memoria.

Cargado por

Mauricio Nogales
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas5 páginas

Lista en Python

El informe técnico analiza la manipulación de listas en Python, describiendo su declaración, operaciones principales y diferencias con otras estructuras de datos como tuplas y conjuntos. Se discuten optimizaciones para el manejo eficiente de listas en proyectos grandes y se abordan problemas de rendimiento en listas grandes. Además, se presentan casos de uso comunes y reflexiones sobre la modificación de listas y su impacto en la memoria.

Cargado por

Mauricio Nogales
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1

Informe Técnico: Investigación de


Estructuras de Datos (Listas en Python)
Fecha: 15 de abril de 2026

Materia: Programación y Estructuras de Datos

Asunto: Análisis exhaustivo de los hallazgos sobre la manipulación de listas en


Python.

I. Descripción del Ejercicio

1. ¿Qué es una lista y cómo se declara?

Una lista es una colección de elementos ordenados. Se caracteriza por ser


mutable (puedes cambiar sus elementos) y por permitir elementos duplicados.

Cómo se declara: Se utilizan corchetes [] y los elementos se separan por comas

Lista vacía: mi_lista = []

Lista con elementos: dias = ["Lunes", "Martes", 40, 5.67, True]

Tipos de datos: Pueden contener strings, enteros, flotantes, booleanos e incluso


otras listas (listas anidadas)

2. Operaciones principales

Existen diferentes operaciones principales como:

● Acceso por índice: Los índices comienzan en 0. Para el primer elemento


usas lista [0]
● Índices negativos: Puedes acceder desde el final hacia el principio usando
-1 para el último elemento, -2 para el penúltimo, etc.
● Slicing (Sublistas): Puedes extraer una porción de la lista usando
lista[inicio:fin]. El índice final no se incluye en el resultado
● Agregar elementos: Aunque el video es introductorio, en Python se usan
métodos como. append(valor) para añadir al final o. insert(indice, valor)
para una posición específica.

2
● Eliminar: Se utilizan comandos como el de la lista [indice].
remove(valor) o. pop ().
● Ordenar: Se usa el método. sort() para ordenar la lista original o la
función sorted(lista) para obtener una copia ordenada.

3. Diferencias con otras estructuras

● Listas vs. Tuplas: Las listas usan [] y son mutables (puedes


modificarlas). Las tuplas usan () y son inmutables (no cambian una vez
creadas), lo que las hace más rápidas y seguras para datos constantes.
● Listas vs. Conjuntos (Sets): Los conjuntos usan {} y no permiten
duplicados. Además, los elementos en un conjunto no tienen un orden
definido, a diferencia de las listas.

4. Optimización en programas grandes

Para manejar listas de forma eficiente en proyectos de gran escala:

● List Comprehensions: Es una forma más rápida y elegante de crear


listas que usar bucles for tradicionales.
● Evitar inserciones al inicio: Insertar elementos al principio de una lista
(insert (0, valor)) es lento en listas grandes porque Python debe desplazar
todos los demás elementos. Es mejor usar [Link] si necesitas
agregar elementos en ambos extremos.
● Uso de generadores: Si solo necesitas iterar sobre los datos una vez y la
lista es inmensa, un generador ahorra mucha memoria RAM.

5. Casos de uso comunes

● Almacenamiento de registros: Listas de usuarios, productos o lecturas


de sensores.
● Pilas y Colas: Implementar estructuras donde el último en entrar es el
primero en salir (LIFO) o el primero en entrar es el primero en salir
(FIFO).
● Matrices: Listas de listas para representar tablas de datos o cuadrículas
de juegos.
● Búferes de datos: Para acumular información temporalmente antes de
procesarla.

3
II. PREGUNTAS REFLEXIVAS

1. Modificación Directa vs. Copias de Listas

La distinción radica en cómo Python gestiona la memoria. Las listas son objetos
referenciados.

Modificación Directa (Referencia): Al asignar lista b = lista a, no estás


creando una nueva lista, sino un segundo "puntero" al mismo lugar en la
memoria. Si modificas lista b, los cambios se reflejarán automáticamente en
lista a. Esto es útil para ahorrar memoria, pero peligroso si necesitas preservar
los datos originales.

Trabajar con Copias: Al usar lista b = lista [Link]() o el slicing lista_b =


lista_a[:], Python reserva un nuevo espacio en memoria.

Riesgo técnico: Si la lista contiene otras listas dentro (listas anidadas), una
copia simple (copy()) solo copiará la estructura superficial. Para una
independencia total, se requiere una copia profunda (deepcopy).

2. Problemas de Rendimiento en Listas Grandes

Cuando el volumen de datos crece significativamente (cientos de miles o


millones de registros), surgen cuellos de botella:

1. Costo de Inserción/Eliminación: Operaciones como insert (0, valor)


o pop (0) obligan a Python a desplazar todos los elementos restantes
en la memoria, lo que significa que el tiempo de ejecución crece
linealmente con el tamaño de la lista.

2. Consumo de Memoria: Las listas de Python almacenan referencias


a objetos, no los valores crudos. Esto consume mucha más memoria
que un arreglo de C++ o una matriz de NumPy.

3. Búsquedas Ineficientes: Verificar si un elemento existe con if x in


lista requiere recorrer la lista elemento por elemento hasta encontrarlo.
En una lista de un millón de elementos, esto es extremadamente lento
comparado con otras estructuras.

4
3. Solución de Problemas Reales

Las listas son fundamentales para resolver problemas donde el orden


secuencial es la prioridad:

Gestión de Inventarios y Eventos: Ideales para manejar registros dinámicos de


asistentes o productos donde el orden de llegada o registro es relevante.

Procesamiento de Datos Estadísticos: Permiten almacenar series de datos


(como el PIB histórico o frecuencias de una encuesta) para luego aplicar
cálculos como promedios o desviaciones estándar mediante bucles.

Algoritmos de Simulación: Se utilizan para representar colas de espera (FIFO)


o pilas de tareas (LIFO) en sistemas operativos o aplicaciones de logística.

Automatización de Reportes: Facilitan la recolección de resultados de


diversas fuentes para generar un informe final estructurado.

4. Ventajas y Desventajas Comparativas

También podría gustarte