01 Variables vs Listas
02 Métodos
03 Matrices
04 Laboratorio Hacker
Unidad 2 · CC2 Python

Estructuras de Datos
Listas

Organiza y procesa información a escala. Domina las colecciones de datos escribiendo código real.

Inicializando motor Python… esto puede tomar un momento

Introducción

¿Qué es una Lista?

Definición formal: Una lista es una estructura de datos de Python que almacena colecciones de elementos. Está ordenada, es mutable (puede cambiar en tiempo de ejecución) y permite valores duplicados.

Variables vs. Listas:
Una variable es como una caja pequeña: guarda un solo valor. Una lista es un estante organizador: una sola estructura con múltiples divisiones numeradas, donde puedes guardar cientos de datos bajo un mismo nombre.

# Sintaxis: corchetes [] separados por comas
inventario = ["Poción", "Espada", "Escudo"]

Indexación

Cada elemento tiene un "número de asiento" llamado índice. En Python siempre empezamos a contar desde cero (0). Los índices negativos cuentan desde el final hacia atrás (-1 es el último elemento).

Para una lista de 4 elementos: los índices positivos van de 0 a 3, y los negativos de -4 a -1. Ambas formas apuntan exactamente al mismo elemento.

Tu turno de programar

Objetivo: Descubriendo Índices

Tienes una lista de planetas. Escribe el código para imprimir el tercer planeta usando un índice positivo, y el primer planeta usando un índice negativo. ¡Ejecuta para descubrir la respuesta de la pregunta inferior!

Comprobación de aprendizaje

Basado en el código que acabas de ejecutar y corregir, ¿qué índices exactos usaste para obtener 'Tierra' y 'Mercurio'?

Métodos de Listas

Las listas son mutables. Para modificarlas usamos métodos (funciones vinculadas a la lista). Pasa el cursor sobre la tarjeta izquierda para ver la explicación, y estudia la sintaxis correcta a la derecha.

.append()

↻ hover para girar

Agrega el elemento indicado exactamente al FINAL de la lista existente.

nombres = ["Ana", "Luis"]
nombres.append("Carlos")

# Resultado: 
# ["Ana", "Luis", "Carlos"]
Práctica Práctica

Descubre el secreto

Usa .append() para agregar la palabra "Python" a la lista. Luego, imprime el elemento ubicado en el índice [-1]. ¡Ejecuta para saber la respuesta!

.insert()

↻ hover para girar

Inserta un elemento en un ÍNDICE ESPECÍFICO, desplazando todos los demás hacia la derecha.

vocales = ["A", "I", "O"]
vocales.insert(1, "E")

# Inserta "E" en la posición 1
# ["A", "E", "I", "O"]
Práctica: El intruso

Usa .insert() para colocar a "Impostor" en el índice 0 de la lista nave y luego imprime la lista entera.

Análisis post-ejecución

Mirando la consola tras la ejecución exitosa, ¿cuál es el nuevo índice de "Tripulante 1"?

.remove()

↻ hover para girar

Elimina la PRIMERA OCURRENCIA del valor indicado por su nombre. ¡Lanza error si no existe!

frutas = ["pera", "uva", "pera"]
frutas.remove("pera")

# Solo borra la primera "pera"
# ["uva", "pera"]
Práctica

Depuración de Tareas

Escribe la instrucción necesaria para eliminar el elemento "bug" de la lista de tareas usando su nombre.

.pop()

↻ hover para girar

Elimina y DEVUELVE el elemento de un índice específico. Si lo dejas vacío (), extrae el último.

pila = ["a", "b", "c"]
ultimo = pila.pop()

# ultimo = "c"
# pila queda = ["a", "b"]
Práctica

Extracción Estratégica

Usa .pop() vacío para sacar el último elemento del historial, y guárdalo en una nueva variable llamada extraido.

.sort()

↻ hover para girar

Ordena los elementos internamente (de menor a mayor o alfabéticamente). Modifica la lista original permanentemente.

nums = [5, 1, 8]
nums.sort()
# nums ahora es [1, 5, 8]

nums.sort(reverse=True)
# Descendente: [8, 5, 1]
Práctica

Acomodando el caos

Ordena los puntajes llamando al método .sort(). Luego, imprime el índice [0] para ver cuál es el puntaje mínimo.

Matrices (Arreglos Bidimensionales)

En el mundo de la programación, es común escuchar "Listas", "Arrays" y "Matrices". A diferencia de los arrays rígidos de otros lenguajes (que solo permiten un tipo de dato y no crecen), en Python simulamos las Matrices creando "Listas dentro de Listas".

El Sistema de Coordenadas: Para localizar un dato en una matriz, necesitas dos índices consecutivos. Primero indicas la Fila (la lista interna) y luego la Columna (el elemento dentro de esa lista).
Sintaxis: matriz[fila][columna]

Radar — Visualizador de Coordenadas (3x3)

Columna [0] Columna [1] Columna [2]
Fila [0] 🌊 Agua 🌊 Agua 🌊 Agua
Fila [1] 🌊 Agua 🌊 Agua 🛥️ Submarino
Fila [2] 🚢 Destructor 🌊 Agua 🌊 Agua

Pasa el cursor sobre las celdas marcadas para ver su coordenada en sintaxis de Python.

Práctica obligatoria: Batalla Naval

Localiza el Submarino

Observando la tabla de arriba, escribe en el print() los corchetes dobles correctos para revelar el "Submarino" oculto en el radar.

Comprobación Táctica

Si tuvieras que apuntar e imprimir el "Destructor" en la consola, ¿qué sintaxis hubieras escrito?

Laboratorio: Operación Cyber-Sec

Agente, estás infiltrado en los servidores. Tu misión consta de 3 fases independientes. Debes escribir el código correcto para superar las defensas. Tu consola flotante está disponible para hacer pruebas sucias.

Misión 01

Bypass de Autenticación

Situación: Hemos interceptado un bloque de contraseñas de seguridad de los guardias. El cortafuegos perimetral pide que ingresemos la última contraseña de la lista.

Tarea: Escribe el código para imprimir la última contraseña utilizando indexación negativa.

Misión 02

Plantando el Troyano

Situación: Debemos camuflar nuestro archivo "troyano.exe" en la lista de procesos activos. El sistema levanta alarmas si la lista no está en perfecto orden alfabético.

Tarea: Usa los métodos pertinentes para agregar el troyano a la lista, luego ordénala y finalmente imprímela para confirmar la infiltración.

Misión 03

Extracción del Mainframe

Situación: Logramos acceder a la matriz central. Los datos de los usuarios se guardan en filas con la estructura: ["Usuario", "Rol", Nivel de acceso]. Nuestro objetivo prioritario es identificar el Rol del usuario "Neo".

Tarea: Estudia las coordenadas de "Neo" y escribe un print() que extraiga únicamente su Rol de la matriz.

Consola Libre (Scratchpad)

Utiliza este entorno flotante seguro para ejecutar pruebas o sacarte dudas sin afectar tus misiones.